java 中判断 json key是否存在

688 阅读1分钟

在使用Java处理JSON数据时,如何判断某一个key是否存在?

第一种方法是使用 JSONObject 的 has 方法,该方法会返回一个布尔值,表示JSON对象中是否包含指定的key。具体代码如下:

JSONObject obj = new JSONObject("{"name":"Jack", "age":18}");
boolean hasKey = obj.has("name");
System.out.println("是否包含name属性:" + hasKey);   // 输出 true

第二种方法是使用 JSONObject 的 opt 方法,该方法会根据key获取对应的value,如果key不存在则返回null。可以通过判断返回值是否为null来判断key是否存在。具体代码如下:

JSONObject obj = new JSONObject("{"name":"Jack", "age":18}");
String name = obj.optString("name");
if(name == null) {
System.out.println("不存在name属性");
} else {
System.out.println("存在name属性,值为:" + name);
}

第三种方法是将JSON字符串转换为Map对象,然后判断Map中是否包含指定的key。具体代码如下:

String jsonStr = "{"name":"Jack", "age":18}";
Mapmap = JSON.parseObject(jsonStr, new TypeReference>(){});
if(map.containsKey("name")) {
System.out.println("存在name属性");
} else {
System.out.println("不存在name属性");
}