我有一个JSON数据,它可能是一个单独的对象或者是相同对象的数组。是否有一种方法可以使用Gson解析这个数据并区分单个对象和数组?
我目前唯一的解决方案是手动解析json,并将其放在try catch中。首先我会尝试将其解析为单个对象,如果失败了,它会抛出异常,然后我会尝试将其解析为数组。
但我不想手动解析...那需要我花费很长时间。以下是正在发生的事情的概述。
public class ObjectA implements Serializable{
public String variable;
public ObjectB[] objectb; //or ObjectB objectb;
public ObjectA (){}
}
这是一个既可以是数组也可以是单个对象的对象。
public class ObjectB implements Serializable{
public String variable1;
public String variable2;
public ObjectB (){}
}
然后当与JSON响应交互时,我正在做这个。
Gson gson = new Gson();
ObjectA[] objectList = gson.fromJson(response, ObjectA[].class);
当 ObjectA 数组被序列化时,json 包含 ObjectB 的数组或单个对象。
[
{
"variable": "blah blah",
"objectb": {
"variable1": "1",
"variable2": "2"
}
},
{
"variable": "blah blah",
"objectb": {
"variable1": "1",
"variable2": "2"
}
},
{
"variable": "blah blah",
"objectb": [
{
"variable1": "1",
"variable2": "2"
},
{
"variable1": "1",
"variable2": "2"
}
]
}
]