Java:比较JSON对象数组中所有键的最佳方法是什么?

3

我正在解析JSON文件(大小从几KB到几GB不等),这些文件是构建为对象数组的,例如:

{  
  "records": [
    {
       "col1": "someValue",
       "col2": "someValue",
       "col3": "someValue", 
    },
    {
       "col1": "someValue",
       "col2": "someValue",
       "col3": "someValue",
    },
    {
       "col1": "someValue",
       "col2": "someValue",
       "col3": "someValue",
    }  
  ]
}

记录代表来自一张表的单行数据,该文件始终仅包含一张表的数据。
我可以提取表的元数据并解析它,没有任何问题。我正在使用JSON.simple库来完成这个任务。
现在我想做的是验证所有对象是否具有相同的键,没有多余或少于的键,因为数据需要被摄入到表中。我可以使用keySet()方法提取键并将其放入列表中,但似乎将一个列表与另一个列表进行比较(从几行到数百万行)是非常低效且昂贵的实现方式。
是否有一些好的解决方案可以快速比较JSON数组中所有JSON对象的所有键?

你事先知道所需的列名称吗? - Quant
不,我不知道列名。 - m4r74
1个回答

1
你无法避免查看数据的每一行(数量为m)的每一个键(数量为n),因此复杂度不能低于O(n * m)

是的,我确实需要查看每个对象中的每个键,但最好的方法是什么?我希望在其中一个JSON库中有一种方法可以验证键..? - m4r74
或者不进行验证,而是进行比较,因为验证需要模式。 - m4r74

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接