Я пытаюсь вызвать JSON-ответ, используя Gson.Но он содержит объект JSONArray в одном месте и объект JSONObject в той же иерархии, здесь мой ответ json:
"{"SERVICES":{"Results":[{"Items":{"Item":[{"@Id":"10"},{"@Id":"12"}]}},
{"Items":{"Item":{"@Id":"13"}}}]}}"
в структуре, которая находится в этой иерархии,
{"SERVICES":
{"Results":
[
{"Items":
{"Item":
[
{"@Id":"10"},
{"@Id":"12"}
]
}
},
{"Items":
{"Item":
{"@Id":"13"}
}
}
]
}
}
Здесь первый элемент Item содержит массив, а второй - объект.Ниже приведен мой код,
import java.util.Iterator;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
public class Next {
public static void main(String args[]){
String jsonData = Services.getJsonData(); //{"SERVICES":{"Results":[{"Items":{"Item":[{"@Id":"10"},{"@Id":"12"}]}}, {"Items":{"Item":{"@Id":"13"}}}]}}
TResponseInfo responseInfo = new Gson().fromJson(jsonData, TResponseInfo.class);
}
class TResponseInfo{
TServicesInfo SERVICES;
}
class TServicesInfo {
List<TResultsInfo> Results;
}
class TResultsInfo {
TItemsInfo Items;
}
class TItemsInfo {
List<TItemInfo> Item;
//TItemInfo Item;
}
class TItemInfo {
@SerializedName("@Id")
int Id;
}
Здесь я получаю исключение:
не удалось десериализовать объект json {"@Id": "13"} с учетом типа java.util.List
и сообщение: Это не массив JSON.