通过Jackson进行JSON重复属性验证

| 我使用Jackson,并想检查输入的JSON字符串是否不包含重复的属性,例如:
{\"a\" : 1, \"a\" : 0}
跟随Jackson片段处理输入字符串,没有任何错误,甚至返回值:
 JsonNode jsonSelect = mapper.readTree(\"{ A : 1, A : 0}\");
 System.out.println(jsonSelect.getFieldValue(\"A\")); // prints 0
我有机会通过杰克逊验证重复项吗? 附言JSON格式是否完全支持重复属性?我在规范中没有发现任何限制。同样,ѭ2s会为重复项抛出异常,但没有给我答案-根据标准,
{\"a\" : 1, \"a\" : 0}
格式正确。     
已邀请:
JSON规范指示重复项被认为无效,但解析器不需要对此做任何事情。从实际角度看,跟踪所有可见属性会增加开销,这在流解析器级别可能没有意义。 至于Jackson,它曾经在数据绑定级别进行重复检测,但是我认为目前还没有启用。在处理地图时,可以很容易地添加它。 如果这是您想要的,则提出功能请求或在用户列表中询问可能是有道理的(尤其是查看其他人是否也想要此功能,从而使其有可能很快被添加)。 如果您只想验证,则可以创建一个Map子类,使其在重复项上引发异常。或者,只需在子类中设置一个标志,即可检查您是否愿意。     
JSON不支持重复属性。因此,如果保证您输入的内容是有效的JSON,则无需检查它们。     

要回复问题请先登录注册