【发布时间】:2015-12-15 23:27:06
【问题描述】:
我对 JSON-Simple 的不满之一是,如果您有一个高度嵌套的结构,那么访问信息就会变得非常冗长。
考虑一个简单的 JSON 对象:
{
"announcements": {
"inGame": {
"playerDied": "{arg1} has died"
}
}
}
如果我想打印出“{arg1} has dead”,按照我目前的理解,我必须执行以下操作:
InputStreamReader inputStreamReader =
new InputStreamReader(getClass().getResourceAsStream(configurationPath));
JSONObject jsonObject = (JSONObject) parser.parse(inputStreamReader);
String died = (String)((JSONObject)((JSONObject)jsonObject.get("announcements")).get("inGame")).get("playerDied");
System.out.println(died);
如您所见,大量的转换和大量的链接。
我的问题是:有没有更简单的方法来解决这个问题?
例如:
String died = jsonObject.get("announcements").get("inGame").get("playerDied");
或者,甚至更好:
String died = jsonObject.get("announcements.inGame.playerDied");
我觉得我错过了什么。
【问题讨论】:
-
使用更好的支持类型树遍历的 JSON 解析器,例如 Gson 的
JsonNode或 Jackson 的TreeNode。
标签: java json deserialization json-simple