2015-01-31 2 views
0

Я должен был позвонить в службу отдыха, принадлежащую трепещущей вечеринке. Они ожидают определенной записи как массива. Я проверил здесь несколько вопросов и написал код для создания массива всего из 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 есть только один элемент, он должен обработать его, иначе он может выбросить эту ошибку.

+1

Ваш сервис ожидает объекта JSON. Вы отправляете ему массив JSON. –

+0

У меня нет большого опыта кодирования JSON. Как исправить это. Пожалуйста помоги!! – Shiv

+1

Вы можете разместить ссылку на документацию службы REST, которую вы вызываете, вместе с полным исключением, которое вы получаете? – spirulence

ответ

0

Я хочу поблагодарить Sotirios-delimanolis. Его комментарий заставил меня удалить .toString() в конце массива, установив его в корневом объекте JSON и эй !!!!! это сработало, и я получил одобренный ответ.

 Смежные вопросы

  • Нет связанных вопросов^_^