如何仅通过jackson库比较两个JSON对象的结构(忽略值)?

时间:2016-12-07 07:42:57

标签: java json jackson

我使用库org.codehaus.jackson。我有2个JSON对象。我从文件hello.json读取的第一个对象。其次我自动生成。 第一:

{
  "name": "some value",
  "date": 1480971600000
}

第二

{
  "name": "some value",
  "date": 1480971600777
}

它们具有相同的结构但"date"属性的值不同。我想只比较忽略值的这些对象的结构。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

如果您有一组固定的JSON格式,那么最简单的方法是创建JSON Schema并使用它进行验证。类似的东西:

JsonNode data = JsonLoader.fromString(jsonData);
JsonNode schema = JsonLoader.fromString(jsonSchema);

JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
JsonValidator validator = factory.getValidator();

ProcessingReport report = validator.validate(schema, data);