Java 使用JSweet将映射发布为JSON

Java 使用JSweet将映射发布为JSON,java,json,jsweet,Java,Json,Jsweet,我想将转换为JSON的java.util.HashMap从客户端发送到服务器 我正在使用Java将客户端的Java转换为JavaScript 我查看了XMLHttpRequest,并尝试使用JSON.stringify(new HashMap())为传输准备映射,但这导致了 TypeError:循环对象值 在客户端 以下是我的相关依赖项(使用Gradle): 我必须先将java.util.Map转换为jsweet.lang.Object,然后使用stringify将其编码为JSON 下面是使用J

我想将转换为JSON的
java.util.HashMap
从客户端发送到服务器

我正在使用Java将客户端的Java转换为JavaScript

我查看了
XMLHttpRequest
,并尝试使用
JSON.stringify(new HashMap())
为传输准备映射,但这导致了

TypeError:循环对象值

在客户端

以下是我的相关依赖项(使用Gradle):


我必须先将
java.util.Map
转换为
jsweet.lang.Object
,然后使用
stringify
将其编码为JSON

下面是使用JSweet将
java.util.Map
作为JSON发送到服务器的代码:

void postJson(Map<String, String> map, String url) {
    XMLHttpRequest request = new XMLHttpRequest();

    // Post asynchronously
    request.open("POST", url, true);
    request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");

    // Encode the data as JSON before sending
    String mapAsJson = JSON.stringify(toJsObject(map));
    request.send(mapAsJson);
}

jsweet.lang.Object toJsObject(Map<String, String> map) {
    jsweet.lang.Object jsObject = new jsweet.lang.Object();

    // Put the keys and values from the map into the object
    for (Entry<String, String> keyVal : map.entrySet()) {
        jsObject.$set(keyVal.getKey(), keyVal.getValue());
    }
    return jsObject;
}
void postJson(映射映射,字符串url){
XMLHttpRequest请求=新的XMLHttpRequest();
//异步Post
打开(“POST”,url,true);
setRequestHeader(“内容类型”,“应用程序/json;字符集=UTF-8”);
//发送前将数据编码为JSON
字符串mapAsJson=JSON.stringify(toJsObject(map));
send(mapAsJson);
}
jsweet.lang.Object到JSObject(映射){
jsweet.lang.Object jsObject=新的jsweet.lang.Object();
//将贴图中的键和值放入对象中
对于(条目keyVal:map.entrySet()){
jsObject.$set(keyVal.getKey(),keyVal.getValue());
}
返回jsObject;
}
像这样使用它:

Map<String, String> message = new HashMap<>();
message.put("content", "client says hi");
postJson(message, "http://myServer:8080/newMessage");
Map message=newhashmap();
message.put(“内容”,“客户说你好”);
postJson(消息,“http://myServer:8080/newMessage");
Map<String, String> message = new HashMap<>();
message.put("content", "client says hi");
postJson(message, "http://myServer:8080/newMessage");