首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JSweet将地图发布为JSON

使用JSweet将地图发布为JSON
EN

Stack Overflow用户
提问于 2016-07-10 09:39:21
回答 1查看 493关注 0票数 4

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

我使用JSweet将Java转换为客户机端的JavaScript。

我看了一下XMLHttpRequest,并试图准备使用JSON.stringify(new HashMap<>())传输的地图,但是这导致了一个

TypeError:循环对象值

在客户端。

这些是我的相关依赖项(使用Gradle):

代码语言:javascript
复制
// Java to JavaScript transpilation 
compile "org.jsweet:jsweet-transpiler:1.2.0-SNAPSHOT"
compile "org.jsweet.candies:jsweet-core:1.1.1"
// Allows us to use Java features like Optional or Collections in client code
compile "org.jsweet.candies:j4ts:0.2.0-SNAPSHOT"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-10 09:39:21

在使用java.util.Map将其编码为JSON之前,我必须将jsweet.lang.Object转换为JSON。

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

代码语言:javascript
复制
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;
}

像这样使用它:

代码语言:javascript
复制
Map<String, String> message = new HashMap<>();
message.put("content", "client says hi");
postJson(message, "http://myServer:8080/newMessage");
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38290531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档