[英]Retrofit parse dynamic JSON response key (Android)
我在下面给出了JSON结构。 如您所见, 分支键可以是数组或对象。 我应该如何处理呢? 基本上,如果branch的实例超过1个,它将成为一个数组,否则它将继续显示一个对象。 我该如何处理。 因为我的POJO类包含Branch branch
,所以这给我带来了转换错误,这是一个对象分离。 如果我要处理数组清理,它将是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
}
]
}
}
],
您必须检索并检查“分支”对象的类型。
尝试这个:
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);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.