我在下面给出了一个JSON结构。如您所见,分支键可以是数组或对象。我该怎么办呢?基本上,如果分支有多个实例,它就会变成一个数组,否则它会继续显示一个单独的对象。我该怎么办呢。它在运行时给出了转换错误,因为我的POJO类包含Branch branch
,这是一个对象解除。如果我想处理数组decleration,它将是Branch[] branch
。如何使Branch
类基于每个tree_type
的位置动态表现。
tree: [
{
tree_type:
{
branch:
{
field1 :val1
field2 : val2
}
}
tree_type:
{
branch:
{
field1 :val1
field2 : val2
}
}
tree_type:
{
branch:
[
{
field1 :val1
field2 : val2
}
{
field1 :val1
field2 : val2
}
{
field1 :val1
field2 : val2
}
]
}
}
],
答案 0 :(得分:0)
您必须检索并检查"分支的类型"对象
试试这个:
List<Branch> branches = new ArrayList<>();
if (jsonObject.has("branch") && jsonObject.get("branch") instanceof JSONObject) {
// it is a JSONObject
JSONObject branch = jsonObject.getJSONObject("branch");
// parse your branch : Branch branchObject = ...
branches.add(branchObject);
} else if (jsonObject.has("branch") && jsonObject.get("branch") instanceof JSONArray) {
// it is an JSONArray
JSONArray branchArray = jsonObject.getJSONArray("branch");
// loop branches
for (int i = 0; i < branchArray.length(); i++)
{
if (branchArray.get(i) instanceof JSONObject) {
JSONObject branch = branchArray.getJSONObject(i);
// parse your branch : Branch branchObject = ...
branches.add(branchObject);
}
}
}