Java:比较json对象数组中所有键的最佳方法?

时间:2016-09-30 11:26:42

标签: java arrays json key jsonobject

我正在解析构建为对象数组的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对象的所有键?

1 个答案:

答案 0 :(得分:1)

您无法避免必须查看数据的每一行(数量m)的每个键(数量n),因此无论如何复杂性都不能低于O(n * m)