java 判断json里面是否包含某个字段 不规则json 递归
时间: 2023-07-08 12:20:27 浏览: 127
FileMaker-JSON-Functions:一组可创建和读取JSON的递归FileMaker定制函数
可以使用递归的方式来判断不规则的 JSON 是否包含某个字段。具体实现方法如下:
```java
import com.alibaba.fastjson.JSONObject;
public class JsonUtils {
/**
* 判断 JSON 是否包含某个字段
* @param jsonStr JSON 字符串
* @param key 字段名
* @return true:包含;false:不包含
*/
public static boolean containsKey(String jsonStr, String key) {
JSONObject json = JSONObject.parseObject(jsonStr);
return containsKey(json, key);
}
private static boolean containsKey(JSONObject json, String key) {
if (json.containsKey(key)) {
return true;
}
for (Object value : json.values()) {
if (value instanceof JSONObject) {
if (containsKey((JSONObject) value, key)) {
return true;
}
}
}
return false;
}
}
```
使用示例:
```java
String jsonStr = "{\"name\":\"张三\",\"age\":18,\"address\":{\"province\":\"广东省\",\"city\":\"深圳市\",\"street\":\"科技园路\"}}";
String key = "street";
boolean contains = JsonUtils.containsKey(jsonStr, key);
System.out.println(contains); // true
```
注意:递归过程中需要判断 value 是否为 JSONObject,如果不是,则不需要再递归下去。如果你需要判断其他类型的 JSON 数据,可以根据需要进行扩展。
阅读全文