Предоставляет ли cometd возможность публикации массивов через JavaScript?

88
7

У меня есть этот код 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"}

Я успешно опубликовал не-массивы и правильно их разобрал, но я не могу заставить массивы работать. Я делаю что-то неправильно? Или это не поддерживается?


Спасибо в Advance.

спросил(а) 2021-01-25T19:11:20+03:00 4 месяца, 3 недели назад
1
Решение
77

Попробуйте вместо этого использовать JSONArray.

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

ответил(а) 2021-01-25T19:11:20+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема