解析嵌套的JSON

时间:2014-05-28 09:07:12

标签: java android json

代码 ::

Object obj=jsonobject.get("results");

obj包含:

[
    {
        "providedLocation": {
            "latLng": {
                "lat": 12.931088,
                "lng": 77.620949
            }
        },
        "locations": [
            {
                "latLng": {
                    "lat": 12.931088,
                    "lng": 77.620949
                },
                "adminArea5Type": "City",
                "adminArea4": "Bangalore Urban",
                "adminArea5": "Bangalore",
                "adminArea4Type": "County",
                "street": "Sarjapur Road",
                "adminArea1": "IN",
                "adminArea3": "Karnataka",
                "type": "s",
                "displayLatLng": {
                    "lat": 12.928883,
                    "lng": 77.617502
                },
                "linkId": 0,
                "postalCode": "560095",
                "dragPoint": false,
             .

。 。                 }             ]         }     ]


我想做什么 ::我试图从"Bangalore"中提取"adminArea5"


我尝试了什么 ::我试图使用代码转换为json

jsonobject = new JSONObject(obj);

我要回的是{}


问题 ::

  • 我做错了什么?
  • 如何在代码中纠正自己?
  • 如何解析此场景

使用的代码 ::

JSONObject jsonobject,jsonobject1;  

            try {
                HttpClient Client = new DefaultHttpClient();
                HttpGet httpget = new HttpGet(Const.URL_JSON_OBJECT.trim());
                ResponseHandler<String> responseHandler = new BasicResponseHandler();
                Content = Client.execute(httpget, responseHandler);
                jsonobject = new JSONObject(Content);   
                //jsonobject1 = (JSONObject)jsonobject.get("results");
                Object obj=jsonobject.get("results");

                jsonobject = new JSONObject(obj);

4 个答案:

答案 0 :(得分:0)

你的结果是一个JSONArray,所以改为创建一个新的JSONArray(obj),然后你可以从生成的JSONArray中的第一个项目中创建一个JSONObject。

JSONObject item = myJsonArray.getJSONObject(0);

答案 1 :(得分:0)

试试这个..

JSONObject更改为JSONArray

JSONArray jsonarray = new JSONArray(obj);
JSONObject list_item = jsonarray.getJSONObject(0);
JSONArray locations_jsonarray = list_item.getJSONArray("locations");
JSONObject locations_list_item = locations_jsonarray.getJSONObject(0);
String value = locations_list_item.getString("adminArea5")

答案 2 :(得分:0)

我认为你的方法是错误的,因为你试图转换jsonarray to jsonobject。所以

{} denote json object

[] denote json array

现在代码如下:

JSONObject main = myJsonArray.getJSONObject(0);

JSONArray location = main.getJSONArray("locations");

JSONObject location_main = location.getJSONObject(0);

String adminArea5 = location_main.getString("adminArea5");

答案 3 :(得分:0)

首先,您只有JSONObject,而尝试获取只返回results的{​​{1}}。这里使用了基于零的索引,如果你有多个位置数组,请尝试放入循环。

JSONArray