2013-06-26 2 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(); 
     } 

и моя строка 'список_идентификаторы' заканчивает существо:

{"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(); 
}