我有一个 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"
}
]
}
]