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

我用过这个,效果很好。