解决方法:
把json变成map<String,Object>
然后取目标对象的特点作为key,检查value是否为null(检查包不包含特殊键值对)
这里使用的jackson转换成Object对象:
Map<String, Object> stringObjectMap = objectMapper.readValue(jsonStr, new TypeReference<Map<String, Object>>(){});
Object id = stringObjectMap.get("id");
System.out.println(id!=null);
//是包含id为key则输出true
注意Map写法
试错过程:
试过转成对象判断对象,然后判断对象是否相等
Object o=str;
System.out.println(o.getClass().equals(int.class));
还有其他简单方法,均不能判断
然后看到其他比较认真的回答都太长了
相反的可以把对象变成json判断json一不一样,以此大概判断对象是否一致
JSON.stringify(obj)
jackson的依赖:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.3</version>