我正在尝试将 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
库。
答案 0 :(得分:1)
尝试使用 equals()
而不是 ==
System.out.println((String) jsonObject.get("subType").equals("REPEATGRID"));
此外,为了避免 NullPointerException,您可以按上述方法改进:
System.out.println("REPEATGRID".equals((String) jsonObject.get("subType")));