【发布时间】:2013-09-24 22:50:03
【问题描述】:
我有一个 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"
}
]
}
]
【问题讨论】: