2014-10-09 3 views
1

У меня есть JSON ниже, что я пытаюсь разобрать на POJO, используя ДжексонаJSON Синтаксический с Джексоном

{ 
    "Response": { 
     "userIds": [ 
      "http://example.com:10249/User/526241869918679991" 
     ], 
     "userGroupIds": [ 
      "http://example.com:10249/UserGroup/1056659494710887089" 
     ], 
     "accountIds": [ 
      "http://example.com:10249/ServiceAccount/3354613317986071030" 
     ], 
     "success": true 
    } 
} 

Мой ответ POJO фрагмент кода, как показано ниже

private boolean success; 
private List<String> accountIds; 
private List<String> userIds; 
private List<String> userGroupIds; 

и их добытчика и сеттеры

Является ли мое объявление неправильным, поскольку я получаю «org.codehaus.jackson.map.JsonMappingException: невозможно десериализовать экземпляр java.util.List из токена START_OBJECT« ошибка при разборе »

разбора логика, как показано ниже:

jsonMapper.readValue(responseJSONString, new TypeReference<List<Response>>() {}); 

Любая идея, где я делаю ошибку?

ответ

3

Прежде всего, ваш ввод начинается с "Response": ..., который должен соответствовать полю в каком-либо объекте. Так что у вас есть есть JSON представление Response контейнера:

class ResponseContainer { 
    Response Response; 
} 

Во-вторых, ваша попытка разобрать список но ваш вклад не начинается с [ (в котором перечислены должны начать с), но {, который указывает, что это объект . Так что если вы хотите, чтобы быть список, оберните вход в [ ... ]:

Так что либо изменить свой вклад, чтобы быть список:

| 
V 

[ 
    { 
     "Response": { 
      "userIds": [ 
       "http://example.com:10249/User/526241869918679991" 
      ], 
      "userGroupIds": [ 
       "http://example.com:10249/UserGroup/1056659494710887089" 
      ], 
      "accountIds": [ 
       "http://example.com:10249/ServiceAccount/3354613317986071030" 
      ], 
      "success": true 
     } 
    } 
] 

^ 
| 
+0

Ваш массив JSON массив контейнеров ответа, а не массив ответы. –

+0

Wops. Благодарю. Я передумаю. – aioobe

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