Java 使用JSweet将映射发布为JSON
我想将转换为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
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");