用于解析任何json文件的Java代码,无论其格式或密钥如何

时间:2012-10-13 09:40:16

标签: java jackson json

我一直在寻找很多天但没有得到任何答案。所以最后我来到这个网站。是否有任何java代码或任何库可以解析任何json文件,无论其格式如何,也不知道json文件中存在的所有键。

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

2 个答案:

答案 0 :(得分:2)

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

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

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

根据您希望实现更好性能的目的,您可以直接使用流式传输API(但需要编写更多代码)。您只想打印键/值

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

答案 1 :(得分:2)

Jackson非常适合这一点。

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

其中JSON_SOURCE可以是StringReaderFilebyte[]InputStream等。(请参阅:ObjectMapper documentation

此代码段与针对此问题发布的其他(类似)答案略有不同。请注意以上用途:

  1. 杰克逊的TypeReference而不是Class对象
  2. 界面Map,而非具体实施(例如HashMap