2015-01-17 6 views
0

Нужно преобразовать ответ json в java pojo, в котором поле (здесь, в примерах «исполнители») может либо быть возвращена в виде {} или [{}, {}] или нуль, как показано в примерах ниже:необходимо преобразовать ответ json в java pojo, где ответ может вернуться {} или [{}, {}]

example1: performer value here is a list of datas '{}'.

{ 

    title:"Sample title1", 
    performers: { 
     performer:[{ 
       creator: "AAAA", 
       linker: "XXX", 

     }, 
     { 
       creator: "BBBBB", 
       linker: "YYY", 

     }] 
    }, 

     venue_address: "sample addr1" 

} 

пример 2: performer value here is just data '{}'


{ 


    title:"sample title2", 
    performers: { 
     performer: { 
       creator: "AAAA", 
       linker: "YYY", 
     } 
    }, 
    venue_address: "sample addr2" 
} 

Пример 3: performer value is null here

{ 

    title:"sample title3", 
    performers:null, 
    venue_address: "sample addr3" 
} 

Как мы можем преобразовать этот ответ JSON в Java POJO с помощью gson.fromJson .Как при попытке преобразовать его в POJO mentoning исполнительницы поле списка выполнить поле получения ошибки "Expecting an OBJECT but found is ARRAY"

+0

Вместо 'нулевой' должно быть '[]' –

+0

Шридхара , ответ для него содержит значение null вместо []. –

ответ

0

правильный способ сделать это,

Whether or not you have performers or not it should be an array. 
JsonArray should be enclosed with []. even you have ZERO or ONE or More perfomer 

Пример 2: значение исполнителя здесь только данные '{}'

{ 
    title:"sample title2", 
    performers: [{ 
     performer: { 
      creator: "AAAA", 
      linker: "YYY", 
     }] 
    }, 
    venue_address: "sample addr2" 
} 

Пример 3: значение исполнителя нуль здесь

{ 
    title:"sample title3", 
    performers:[], 
    venue_address: "sample addr3" 
} 
+0

Спасибо Шридхар за reply.But ответа API от третьей стороны в артистах формата: { исполнителя: { создателя: «АААА», линкера: «YYY», }} .То есть, тело ответа для полевых исполнителей подобно {} not [{}]. И если у него более одного исполнителя, то он приходит как список [{}, {}], но в случае одного исполнителя, который находится в format {} not [{}, {}}. Пожалуйста, помогите мне решить то же самое. –

+0

@ A.J.K :: Какую библиотеку Json вы используете для разбора. Есть ли функция, чтобы проверить, является ли JsonArray NULL или NOT? –

+0

Также проверить, является ли это JSON Array или Json Object, используя библиотеку в функции построения? –