Java json-通过对象属性简单访问
Java json-simple accessing via object properties
我对 JSON-Simple 的抱怨之一是,如果您的结构嵌套很重,那么访问信息会变得非常冗长。
考虑一个微不足道的 JSON 对象:
{
"announcements": {
"inGame": {
"playerDied": "{arg1} has died"
}
}
}
如果我想打印出“{arg1} has died”,按照我目前的理解,我必须执行以下操作:
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");
我觉得我错过了什么。
您正在为 xmlns 的 xpath 行寻找 json 的 jsonpath。检查这个:
https://github.com/jayway/JsonPath
我用过这个,效果很好。
我对 JSON-Simple 的抱怨之一是,如果您的结构嵌套很重,那么访问信息会变得非常冗长。
考虑一个微不足道的 JSON 对象:
{
"announcements": {
"inGame": {
"playerDied": "{arg1} has died"
}
}
}
如果我想打印出“{arg1} has died”,按照我目前的理解,我必须执行以下操作:
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");
我觉得我错过了什么。
您正在为 xmlns 的 xpath 行寻找 json 的 jsonpath。检查这个:
https://github.com/jayway/JsonPath
我用过这个,效果很好。