Я должен был позвонить в службу отдыха, принадлежащую трепещущей вечеринке. Они ожидают определенной записи как массива. Я проверил здесь несколько вопросов и написал код для создания массива всего из 1 элемента. Даже после этого служба жалуется на ту же проблему. Если я не передаю этот массив, он отвечает правильно. Но не ожидаемый ответ. Скажи, что он мне что-то рекомендует. Я ожидаю одобрения. Я возвращаюсь к исследованию, если я не передаю массив. Если я пройду массив, я вернусь к исключению, когда, как я ожидаю, «утвержден»Исключение вызова службы REST при передаче массива JSON. Какая у меня ошибка?
{
"orgCode": "XXX",
"modelCode": "XXX",
"event": {
"contacts": [
{
"name": "XXX",
"@id": "941689716",
"company": "XXX"
}
],.............................
So. Я попробовал 2 пути и оба бросают же исключение
Метод 1: Создание JSON массив и заполнить его непосредственно
JSONObject info = new JSONObject();
info.put("@id", "941689716");
info.put("name", "XXX");
info.put("company", "XX");
JSONArray contactsArray = new JSONArray();
contactsArray.add(info);
event.put("contacts", contactsArray.toString());
Метод 2: Создание ArrayList, добавьте его в JSON массив
JSONObject info = new JSONObject();
info.put("@id", "941689716");
info.put("name", "XXX");
info.put("company", "XX");
List<JSONObject> objects = new ArrayList<JSONObject>();
objects.add(info);
JSONArray contactsArray = new JSONArray();
contactsArray.addAll(objects);
event.put("contacts", contactsArray.toString());
Причина, по которой я испробовал метод 2, состояла в том, что в исключении я вижу, что они ожидают, что арраист
Can not deserialize instance of java.util.ArrayList out of START_OBJECT token\n at [Source: [email protected]; line: 1, column: 50] (through reference chain: com.xx.xx.xx.xx[\"event\"]->com.xx.xx.xx.Event[\"contacts\"])"})
Я использую java 6 на IBM RAD, а объекты JSON - из пакета com.ibm.json.java. Я не могу использовать любой открытый исходный код из-за правил
Так вот мой вопрос
Пожалуйста, поправьте меня, если я ошибаюсь
Или
Может ли это быть проблема на стороне сервера? Я прочитал в другом потоке, что если у arraylist есть только один элемент, он должен обработать его, иначе он может выбросить эту ошибку.
Ваш сервис ожидает объекта JSON. Вы отправляете ему массив JSON. –
У меня нет большого опыта кодирования JSON. Как исправить это. Пожалуйста помоги!! – Shiv
Вы можете разместить ссылку на документацию службы REST, которую вы вызываете, вместе с полным исключением, которое вы получаете? – spirulence