2011-09-03 99 views
1

如何从此JSON字符串中获取Java对象?我们没有JSON字符串中的对象名称如何从JSON字符串中获取Java对象

[ 
    { 
     "eqid": "c0001xgp", 
     "magnitude": 8.8, 
     "lng": 142.369, 
     "src": "us", 
     "datetime": "2011-03-11 04:46:23", 
     "depth": 24.4, 
     "lat": 38.322 
    }, 
    { 
     "eqid": "2007hear", 
     "magnitude": 8.4, 
     "lng": 101.3815, 
     "src": "us", 
     "datetime": "2007-09-12 09:10:26", 
     "depth": 30, 
     "lat": -4.5172 
} 
] 

我发现了一个像这样的代码来解析JSON。 JSONArray

earthquakes = json.getJSONArray("earthquakes"); 
for(int i=0;i < earthquakes.length();i++){      
     HashMap<String, String> map = new HashMap<String, String>(); 
     JSONObject e = earthquakes.getJSONObject(i); 
     map.put("id", String.valueOf(i)); 
     map.put("name", "Earthquake name:" + e.getString("eqid")); 
     map.put("magnitude", "Magnitude: " +  e.getString("magnitude")); 
     mylist.add(map); 
    } 

但是,以防万一,我们有对象的名字:“大地震”这样的

{"earthquakes":[ 

    { 
     "eqid": "c0001xgp", 
     "magnitude": 8.8, 
     "lng": 142.369, 
     "src": "us", 
     "datetime": "2011-03-11 04:46:23", 
     "depth": 24.4, 
     "lat": 38.322 
    }, 
    { 
     "eqid": "2007hear", 
     "magnitude": 8.4, 
     "lng": 101.3815, 
     "src": "us", 
     "datetime": "2007-09-12 09:10:26", 
     "depth": 30, 
     "lat": -4.5172 
} 
]} 

应该怎样,如果我没有名字“地震”我做的。对不起,我不能给自己添加新的答案,所以我只是编辑问题。

+0

可能重复[如何解析JSON数组没有对象名称](http://stackoverflow.com/questions/6964387/how-to-parse-json-array-with-no-object-name) –

回答

1

您可以使用像google-json这样的JSON解析器库,它将允许您将此JSON解析为您必须定义的强类型Java类。在这种情况下,您将定义一个具有诸如eqid,magnitude等属性的Java类,然后解析器将返回您一个此对象的数组。

+0

谢谢你非常。我发现了这样的代码来解析JSON – lovesunset