Необходимо преобразовать ответ 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, вызывая поле исполнителя как список полей выполнения, получая ошибку "Expecting an OBJECT but found is ARRAY"

1 ответ

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

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"
}
Другие вопросы по тегам