【问题标题】:Java json-simple accessing via object propertiesJava json-通过对象属性进行简单访问
【发布时间】: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


【解决方案1】:

您正在 xpath for xmls 行中寻找 jsonpath for jsons。检查这个:

https://github.com/jayway/JsonPath

我用过它,它就像一个魅力。

【讨论】:

  • 你是我的英雄!谢谢!
猜你喜欢
  • 2013-06-06
  • 2021-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-31
  • 2012-02-28
  • 2021-12-05
  • 1970-01-01
相关资源
最近更新 更多