我收到以下JSON响应:
对象中的“数据”:
"status": true,
"data":{
//Some data
}
有时它以数组形式出现:
"status": true,
"data":[
//Some data
]
如何动态检查数据的响应,是对象还是数组?
*我正在使用改造
我的改造数组解析为:
@SerializedName("data")
ArrayList<DataDetail> dataList;
提前致谢!
最佳答案
如果Json不知道是JsonObject还是JsonArray,则只需使用JsonElement,如下所示:
@SerializedName("data")
private JsonElement data;
现在,根据您的要求将此JsonElement转换为您各自的模型,您可以使用以下代码:
if(data instanceOf JsonObject){
YourModelForData object = YourDataComponentForObject(data);
// Do anything with Object
} else {
List<YourModelForData> array = YourDataComponentForArray(data);
// Do anything with array
}
public YourModelForData YourDataComponentForObject(JsonElement data) {
Type type = new TypeToken<YourModelForData>() {
}.getType();
YourModelForData item = new Gson().fromJson(data, type);
}
public List<YourModelForData> YourDataComponentForArray(JsonElement data) {
Type type = new TypeToken<List<YourModelForData>>() {
}.getType();
List<YourModelForData> items = new Gson().fromJson(data, type);
}
快乐编码;
关于android - 如何动态处理翻新JSON,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41584123/