1

我已经搜索了很多天,但没有得到任何答案。所以最后我来到了这个网站。是否有任何 java 代码或任何库可以解析任何 json 文件,而不管其格式如何,并且不知道 json 文件中存在哪些所有键。

无论给出什么 json 文件,它都可以显示其中的所有键值对。

4

2 回答 2

2

你也可以试试 Genson http://code.google.com/p/genson/

如果根是一个对象,您可以将 json 文件反序列化为映射(否则它是一个数组并且您反序列化为一个数组)。

FileReader reader = new FileReader("path/to/your/json");
Map<String, Object> map = new Genson().deserialize(reader, Map.class);

根据您想要获得更好性能的目标,您可以直接使用流式 API(但要编写更多代码)。您只想打印键/值?

Genson 具有完整的数据绑定支持并提供了一些其他不错的功能,请查看wiki

于 2012-10-13T10:26:44.960 回答
2

杰克逊在这方面做得很好。

 final Map<String, Object> son = objectMapper.readValue(JSON_SOURCE,
      new TypeReference<Map<String, Object>>() {}
 );

在哪里JSON_SOURCE可以是String, Reader, File,byte[]InputStream(参见:ObjectMapper 文档

此代码片段与针对此问题发布的另一个(类似)答案略有不同。请注意,上述用途:

  1. 杰克逊的TypeReference而不是一个Class对象
  2. 接口Map而不是特定的实现(例如HashMap
于 2017-04-22T10:47:04.780 回答