数组内的json数组在同一个对象数组中?

时间:2012-11-10 11:03:45

标签: android json

我使用json解析创建一个小应用程序,因为我正在访问json数组但是在这个jsonarray我想要phonenumbers标题和地址,但是如何访问电话号码 不明白如何访问它

这里是json格式

> {
    "responseData": {
        "results": [
            {
              "title": "Pakvan Dining Hall",
              "phoneNumbers": [
                    {
                        "type": "",
                        "number": "079 26636473"
                    },
                    {
                        "type": "Mobile",
                        "number": "09427608429"
                    }
                ],
                 "addressLines": [
                    "Vadilal Sarabhai Hospital",
                    "Ahmedabad, Gujarat 380006, India"
                ]
            },
            {
              "title": " Dining Hall",
              "phoneNumbers": [
                    {
                        "type": "",
                        "number": "079 26645473"
                    },
                    {
                        "type": "Mobile",
                        "number": "09427608429"
                    },
                    {
                        "type": "",
                        "number": "079 26645473"
                    },
                    {
                        "type": "Mobile",
                        "number": "09427608429"
                    }
                ],
                 "addressLines": [
                    " Sarabhai Hospital",
                    "Ahmedabad, Gujarat 380006, India"
                ]
            },
}
  

的ArrayList> contactList = new ArrayList>();

    JsonParser jparser= new JsonParser();
    String jsonstringfunction =jparser.jsonstringfunction(url);

    Log.e("Jsonstringfunction","n"+jsonstringfunction);

    try
    {   
        JSONObject jsonObject2 = new JSONObject(jsonstringfunction);

        JSONObject response = jsonObject2.getJSONObject(TAG_RESPONSE);
        JSONArray jresults=response.getJSONArray(TAG_RESULTS);
        Log.e("check","3333"+jresults);

        for (int i = 0; i < jresults.length(); i++)
        {
            Log.e("check","4444"+jresults.length());
            String titlenoformating = jresults.getJSONObject(i).get(TAG_TITLENOFORMATING).toString();

            Log.e("Title",""+titlenoformating);

            HashMap<String, String> map = new HashMap<String, String>();
            map.put(TAG_TITLENOFORMATING,titlenoformating);

            JSONArray jaddressline=jresults.getJSONObject(i).getJSONArray(TAG_ADDRESSLINES);

            Log.e("addressline","addressline"+jaddressline);
            String addressline2="";
            for(int j=0;j<jaddressline.length();j++)
            {   
                addressline2=addressline2+jaddressline.getString(j).toString();

                Log.e("addressline","jaddressline"+addressline2);
            }
            // adding each child node to HashMap key => value
            map.put(TAG_ADDRESSLINES,addressline2); 

            JSONArray jphonenumbers=jresults.getJSONObject(i).getJSONArray(TAG_PHONENUMBERS);

            for(int k=0;k<jphonenumbers.length();k++)
            {

                Log.e("Phonenumbers","phonenumbers"+jphonenumbers);

             JSONArray jtype=jphonenumbers.getJSONObject(k).getJSONArray(TAG_TYPE);

                Log.e("JsonPhone","type"+jtype);
                for(int m=0;m<jtype.length();m++)
                {                   

                    String type=jtype.getString(m).toString();

                    Log.e("type","type"+type);
                }       

            }


            contactList.add(map);
        }

2 个答案:

答案 0 :(得分:1)

String[] title,number,address;
JSONObject jobject = new JSONObject(your_result_object);
JSONObject json=jobject;
JSONObject jresponse = json.getJSONObject("responseData");
JSONArray jresult = jresponse.getJSONArray("results");

title = new String[jresult.length()];

for(int i=0;i<jresult.length();i++){
JSONObject obj = jresult.getJSONObject(i);
title[i] = obj.getString("title");

JSONArray jphonenumbers = obj.getJSONArray("phoneNumbers");
number = new String[jphonenumbers.length()];

for(int j=0;j<jphonenumbers.length();j++){
JSONObject obj2 = jphonenumbers.getJSONObject(j);
number[j] = obj2.getString("number");
}

JSONArray jaddress = obj.getJSONArray("addressLines");
address = new String[jaddress.length()];
for(int k=0;k<jaddress.length();k++){
address[k] = jaddress.getString(k);
}
}

答案 1 :(得分:0)

电话号码阵列应该可以在这里访问:

responseData.results['phonenumber']
相关问题