将 JSON 对象的键与字符串进行比较

时间:2021-04-27 01:51:37

标签: java json json-simple

我正在尝试将 JSON Object 的键与 String 进行比较,以在继续处理之前评估我的 JSON Object 是否包含该键的指定值。 这是 String 的示例。

{'type':'Layout','subType':'REPEATGRID','pgRef':'.pySections(1).pySectionBody(1).pyTable.pyRows(1).pyCells(3).pySections(1)'}

这是我用来执行评估的代码。假设上面的 String 存储在变量 str

jsonString = str.replaceAll("\'", "\"");
JSONParser parser = new JSONParser();
JSONObject jsonObject = (JSONObject) parser.parse(jsonString);
System.out.println((String) jsonObject.get("subType") == "REPEATGRID");

上面的代码返回false,而语句System.out.println((String) jsonObject.get("subType"));返回REPEATGRID

为什么评估返回 false? 我该如何正确评估这种情况?

PS:我正在使用 org.json.simple 库。

1 个答案:

答案 0 :(得分:1)

尝试使用 equals() 而不是 ==

   System.out.println((String) jsonObject.get("subType").equals("REPEATGRID"));

此外,为了避免 NullPointerException,您可以按上述方法改进:

   System.out.println("REPEATGRID".equals((String) jsonObject.get("subType")));
相关问题