我正在尝试解析看起来像下面数据的JSON数据。 我已经成功了一些领域,但我试图在“条款”下的“类别”下的“0”下获得“名称”。
endl
这是我解析数据的方式:
[
{
"ID": 1710,
"status": "publish",
"type": "post",
"content": "Lorem ipsum",
"parent": null,
"format": "standard",
"modified_tz": "UTC"
},
"featured_image": {
"ID": 1713,
"title": "km",
"status": "inherit",
"type": "attachment",
}
}
}
}
},
"terms": {
"category": [ <<<<---AM REFERENCING HERE--->>>>>
{
"ID": 2,
"name": "Entertainment",
"slug": "entertainment",
"taxonomy": "category",
"parent": null,
"count": 30,
}
]
}
}
]
请帮助我,我做错了什么?
答案 0 :(得分:0)
我找到了解决方案:
自&#34;类别&#34; tag包含一个JSON对象数组(在本例中为单个对象)。
我投出&#34;类别&#34;成为一个arraylist
Map<String, Object> terms = (Map<String, Object>) mapPost.get("terms");
ArrayList category = new ArrayList();
category = ((ArrayList) terms.get("category")); //<--Cast to ArrayList
zero = (Map<String, Object>) category.get(0);
然后我得到了&#34;名字&#34;通过执行标记:
String tag = (String) zero.get("name")
答案 1 :(得分:0)
您提供的代码甚至无法编译(损坏的Gson
构造函数调用; Java不提供List<K,V>
...)。列表也不能在运行时转换为映射。 JSON也被破坏了,但是,假设您提供了一些代码,我想您想要解析位于name
的{{1}}:
$[(index)].terms.category[0].name
您不需要反序列化您将要遍历的每个嵌套对象(从性能的角度来看这更有效):只需遍历JSON树。