java - cometd 是否允许您通过 JavaScript 发布数组?

标签 java javascript cometd

我有这段 JavaScript 代码:

$.cometd.publish('/service/slideshow/add_ids', {"list":[1889, 1888, 1887, 1886, 1885, 1884]});

在我的 Java 代码中我有:

         Map<String,Object> data = message.getDataAsMap();
        if(data.containsKey("list"))
        {
            JSONObject o1 = new JSONObject(data);
            String idList = o1.toString();
        }

我的字符串 'idList' 最终变成了:

{"list":"[Ljava.lang.Object;@41c271b8"}

我已成功发布非数组并正确解析它们,但我似乎无法让数组工作。难道我做错了什么?还是不支持?

提前致谢。

最佳答案

请尝试使用 JSONArray

Map<String, Object> data = message.getDataAsMap();
if(data.containsKey("list"))
{
    JSONArray ja = new JSONArray(data.get("list"));
    String idList = ja.toString();
}

关于java - cometd 是否允许您通过 JavaScript 发布数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17310329/

相关文章:

java - 用正则表达式替换字符串

java - JSF/Primefaces 数据表和排序问题

cometd - 什么是 cometd ?为什么使用它以及如何使用它

javascript - CometD v3.0.9 - 服务器端断开连接未在消息上设置成功标志( channel /元/断开连接)

javascript - 通过 HTTPS 的 Ajax GET 请求

处理 Alpha 时的 Java DirectColorModel 与 IndexColorModel

java - 请正确初始化log4j系统警告

javascript - Vue "on-change"方法不适用于复选框

javascript - ZeroClipboard 不适用于该网站的移动版本