我有一个用 java 解析的 JSON 文件。它有几个对象列表,如下所示:
{
"phoneNumbers": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "fax",
"number": "646 555-4567"
}
]
}
这是一个敏感的输入文件,不能覆盖重复的条目。该程序在处理特定列表时使用 for 循环和映射检查重复项,但我想在解析文件时一次性检查整个文件是否有重复项,以便在出现错误时程序在运行其他任何操作之前停止。
我想知道是否有一个用于 java 的 JSON 解析器可以检测列表中的重复对象条目并提供一条消息。另外,是否有任何解析器可以让您知道声明的对象是否因为在同一文件中声明了另一个同名对象而被覆盖?
Well, Jackson https://github.com/FasterXML/jackson-core确实有一个反序列化功能 https://github.com/FasterXML/jackson-databind/wiki/Deserialization-Features in its 数据绑定扩展 https://github.com/FasterXML/jackson-databind这将满足您的需要:FAIL_ON_READING_DUP_TREE_KEY
将导致解析器无法读取重复的键。
也就是说,您可能可以为任何支持反序列化为自定义对象的解析器实现相同的功能,方法是使用自定义Map http://docs.oracle.com/javase/7/docs/api/java/util/Map.html如果遇到重复键,该类会引发异常,而不仅仅是更新值...
至于在列表中查找重复条目,如何反序列化为自定义LinkedHashSet http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashSet.html如果插入重复条目,子类会抛出异常?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)