将没有特定标准结构的JSON解析为Map或Java Object

时间:2012-05-01 23:07:26

标签: java json

如果我可以将json映射到Java对象,但结构很奇怪,那将是很好的,对于我试图解析的所有json,它是不同的。例如,类别和主题可以有所不同。我如何将它映射到Java对象,或任何其他建议?

"name":"url", "categories": { "249":{"catID":"249","score":33.43533451973102}, "34":{"catID":"34","score":3.0000000447034836}, .,.,so on }, "topics":{ "DSLR":{"weight":1.6690950917579026,"noun":1}, "illuminated":{"weight":7.6470197510265105,"noun":0}, . .so on }}

2 个答案:

答案 0 :(得分:1)

您是否至少可以依赖于每种类型的响应/对象映射的JSON表示是否一致?如果是这样,您可以使用Google GSON库,并创建自定义反序列化程序来处理非标准JSON表示。这是项目的链接:

http://code.google.com/p/google-gson/

以及有关如何创建自定义序列化程序/反序列化程序的用户指南:

https://sites.google.com/site/gson/gson-user-guide#TOC-Custom-Serialization-and-Deserialization

答案 1 :(得分:0)

有一个库:org.json。要从String解析JSONObject,请说:

JSONObject jo = new JSONObject(string);

但是,如果字符串表示数组而不是地图,请使用:

JSONArray ja = new JSONArray(string);