我一直在寻找很多天但没有得到任何答案。所以最后我来到这个网站。是否有任何java代码或任何库可以解析任何json文件,无论其格式如何,也不知道json文件中存在的所有键。
无论给出什么json文件,它都可以显示其中的所有键值对。
答案 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
可以是String
,Reader
,File
,byte[]
,InputStream
等。(请参阅:ObjectMapper documentation )
此代码段与针对此问题发布的其他(类似)答案略有不同。请注意以上用途:
TypeReference
而不是Class
对象Map
,而非具体实施(例如HashMap
)