JSON示例。
编辑:由于文件有多大,我把它放在了一个pastebin上 - http://pastebin.com/wdR2paBp我如何获得一个“对象”数组,然后遍历它并获取名称(即“minecraft / sounds / dig / sand4.ogg”)以及每个文件的哈希值?
{{1}}
答案 0 :(得分:0)
你有一个JSON对象,而不是JSON数组。从概念上讲,您可以将其视为一组名称/值对,但根据JSON规范,NV对不是有序的;即它是一个集合,而不是列表。
没有标准方法可以将JSONObject
转换为JSONArray
。投射不起作用,JSONObject
没有方法进行转换。当然,使用JSONSmart无法保留源文件/字符串中NV对的明显顺序。 (这是一件好事,IMO,因为订单不应该意味着什么。)
如果要迭代NV对,最好的方法是使用entrySet
方法将JSONObject的条目作为Set
...然后迭代集合。 (JSONObject
的JSONSmart版本是HashMap
的子类。)
现在,如果"对象"中的条目集合应该是订购,然后你错误地设计了你的JSON方案。您应该使用JSON数组(使用[...]
JSON语法),并且元素需要重新构建为对象; e.g。
[ {
"name": "realms/lang/de_DE.lang",
"hash": "10a54fc66c8f479bb65c8d39c3b62265ac82e742",
"size": 8112
},
{
"name": "realms/lang/cy_GB.lang",
"hash": "14cfb2f24e7d91dbc22a2a0e3b880d9829320243",
"size": 7347
},
etcetera
]
使用JSONSmart解析时,您将获得JSONArray
。