我知道正确的JSON格式如下:
{"coord":[{"lat":37.4056,"lon":-122.0775}]}
但是我有一个以这种格式出现的数据
{"coord":{"lat":37.4056,"lon":-122.0775}}
如果这是一个正确的JSON格式,如何在Java中解析它?
答案 0 :(得分:1)
在Json
中,{}
括号表示对象,而[]
括号表示数组。
您的第一个示例包含一个包含一个包含lat
和lon
属性的对象的数组,该对象由data.coord[0].lat
访问。
第二个示例是包含具有lat
和lon
属性的对象的对象
也就是说,没有数组,只是一个对象。该对象由data.coord.lat
访问。
两者都是正确的json。
你几乎以同样的方式解析它们,它们只是不同的类型(coord
下的对象或数组)。
// Parse:
JSONObject obj = new JSONObject(jsondatastring);
// Fetching the object:
JSONObject coord = obj.getJSONObject("coord");
// Or fetching the array:
JSONArray coords = obj.getJSONArray("coord");