2013-06-26 21 views
3

我有这样的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"} 

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

在此先感谢。

+1

这是对象数组的默认'toString()'输出。你可能会更好地迭代数组,否则发布'java.util.Arrays.toString(o1)' –

+1

检出[java:这是什么:\ [Ljava.lang.Object ;?](http:// stackoverflow.com/questions/3442090/java-what-is-this-ljava-lang-object)了解更多信息。 –

+0

谢谢,帮助解释我所看到的。 –

回答

2

尝试使用JSONArray代替。

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