检测 JSON 对象列表中的重复条目

2024-02-07

我有一个用 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(使用前将#替换为@)

检测 JSON 对象列表中的重复条目 的相关文章

随机推荐

  • D 中的模板参数推理

    我正在编写一些对静态 D 数组进行操作的向量函数 如下所示 real N unit uint N real N v real N u v norm v explicit type necessary to force slice opera
  • iOS 即席分发

    我目前已经完成了 iOS 应用程序的制作 我想使用临时分发方式在我的同事之间分发该应用程序 我只有两个月的 XCode 经验 对于向同事发送应用程序需要哪些材料 我感到很困惑 我不想犯下无法挽回的错误 为了将应用程序分发给其他人 我需要捆绑
  • pdf生成后如何打开打印对话框?

    我编写了一些动态生成 PDF 文件的操作 类似 reports reportGenerator action 当我打电话时reports reportGenerator param dialy它将在弹出窗口中打开生成的 pdf 然后我可以按
  • 我可以向同一台服务器发出 CURL 请求吗?

    我需要实现一种方法来对位于同一服务器或另一服务器上的页面进行 POST 调用 我们不能使用 include 因为我们调用的文件通常调用不同的数据库或具有相同名称的函数 我一直在尝试使用curl 来实现这一点 虽然它在从另一台服务器调用文件时
  • 跟踪文件但将其从 git 包中排除

    我有一个有点复杂的 ansible 工作流程 我有两个气隙网络 我在两个网络上开发剧本 所以我有两个由 git 管理的有点独立的 ansible 存储库 同时 大多数剧本都可以在这两个地方使用 使事情复杂化的是 这是一种单向转移 我可以从网
  • Jquery animate() 和 google chrome 问题

    我在 google Chrome 中遇到 jquery 和 animate 问题 我有一个最初隐藏的盒子 位于屏幕的右侧 当单击一个框时 隐藏的框变得可见并从右到中心动画 它停止并闪烁 然后它开始再次移动到屏幕的左侧并消失 这个东西适用于
  • 从 WebForm 使用 MVC HtmlHelper

    我正在向混合 WebForms MVC 站点添加一些 UI 功能 在本例中 我将一些 AJAX UI 功能添加到 WebForms 页面 通过 jQuery 并且数据来自 MVC JsonResult 一切都 100 正常工作 但有一个例外
  • Homestead 2 xdebug 不起作用

    我有一个 Homestead vagrant VM 设置 Xdebug 是开箱即用的远程调试的所有设置 我可以在这里看到这个 etc php5 fpm conf d 20 xdebug ini 并通过做一个php i grep xdebug
  • 在 Q 中链接任意数量的 Promise

    我想发送 N 次 HTTP 请求 我希望最终获得有关每个请求的结果的信息 运行一次请求函数效果很好 这是使用 Q defer 的 HTTP 请求函数 function runRequest var deferred Q defer star
  • 专门用于 :hover 的元素覆盖 :active 的等效类

    我有代码为背景分配了一个类的字体颜色 然后有单独的类用于更改 hover 或 active 上的颜色 但 active 状态不会触发 除非我删除 hover 特定类 CODEPEN http codepen io bjackson2016
  • 如何在appengine中使用get_serving_url?

    以下是到目前为止我的 main py import cgi import datetime import logging from google appengine ext import db from google appengine a
  • 奇怪的 posix 消息队列链接问题 - 有时它无法正确链接

    当我构建以下代码时 它构建得很好 如果我更改代码以注释掉 while 使用相同的命令行 它不会构建 见下文 include
  • jqgrid如何添加多列排序?

    我可以向 jqgrid 添加单列排序 没问题 jqgrid如何添加多列排序 即先按第1列排序 再按第2列排序 最终排序顺序为 第2列 第1列 当前版本的jqGrid不支持多列排序 On http www trirand com blog h
  • 预加载浏览器剪贴板,用于使用 watir-webdriver 测试粘贴到字段中

    我们的 Web 应用程序有一些事件代码来 格式化 粘贴到字段中的任何文本 以便任何 HTML 样式都不会破坏我们的数据 预加载浏览器剪贴板以便我可以测试粘贴到输入字段的好方法是什么 有什么方法可以以编程方式执行此操作 或者我可以让测试脚本访
  • 无状态React如何传递密钥

    我不确定如何将密钥传递给无状态反应组件 MyComponent props gt return span props somevalue span aCollection map value index gt
  • 将 json 转换为对象列表时出现 ClassCastException

    我在用Jackson http jackson codehaus org 1 7 3 javadoc org codehaus jackson map ObjectMapper html处理json数据的库 我创建了一个generic将 j
  • 在构造函数中传递控制器总是不好的做法吗?

    我偶尔会通过传入视图控制器实例本身来实例化视图控制器中的类 以便我创建的对象可以调用控制器的方法来更新视图 这是总是 经常还是从来都不是一个坏习惯 具体来说 ViewController h 有 void updateButtonValue
  • 无法使用 VS2008 SP1 进入 .NET Framework 源代码

    不知何故 我的 VS2008 SP1 失去了进入 NET 框架源代码的能力 我一直在尝试使用复选框 我已经重新删除了符号缓存文件夹十几次 我尝试过各种调试符号服务器 它所做的只是下载一些 PDB 文件 但是当我尝试在 NET 中选择堆栈框架
  • 是否可以在 xelatex 中创建带有这样的数字的页脚?

    是否可以在 xelatex 中创建像上面这样的页脚 在第一页上要在右侧对齐的数字 在第二页上要在左侧对齐的数字 顶部边框是一个很好的补充 但不是必需的 我不需要数字旁边的任何文本 部分名称 documentclass 11pt a4pape
  • 检测 JSON 对象列表中的重复条目

    我有一个用 java 解析的 JSON 文件 它有几个对象列表 如下所示 phoneNumbers type home number 212 555 1234 type home number 212 555 1234 type fax n