嵌套JSONArray记录分析问题的Andr​​oid [英] Nested JSONArray Record Parsing Issue Android

查看:193
本文介绍了嵌套JSONArray记录分析问题的Andr​​oid的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想提出一个接收JSON数据从服务器一应用程序,用户将选择像0,1,2从微调值...等等,在号码选择JSON的基础上,将返回从用户定义的数据指数像0,1 ..我不知道如何在Android的解析内JSON数据

  JSON =新的JSONObject(JSONParser.Result);
JSONArray jArray = json.getJSONArray(数据);
StopElement _stop =新StopElement();
Log.d(JSON算法中结果,json.toString());如果(jArray!= NULL){
    的for(int i = 0; I< jArray.length();我++){
        jsonarray = jArray.getJSONArray(ⅰ);
        如果(jsonarray!= NULL){
            对于(INT J = 0; J< jsonarray.length();我++){
                如果(我== 0){
                    jsonarray = jArray.getJSONArray(J);
                    _stop.setName(jsonarray.getString(0));
                    StopElement.Stop_name_list.add(_stop.getName());
                }
             }
        }其他{
            打破;
        }
    }
}其他{
    返回null;
}
   ** JSON数据**[[[Sadiqabad集市,33.634525,73.074326,suzk1],[Chungi否8,33.627262,73.093567,suzk1],[雅杂接地,33.628395 73.101936,suzk1],[卡纳桥,33.629967,73.112823,suzk1],[栗之路,33.643162,73.102928,21] [法扎巴德,33.663212,73.084801,21]],[[Sadiqabad集市,33.634525,73.074326,suzk1],[汽油泵,33.634109,73.076363 suzk1],[月光集市,33.631584,73.072563,suzk1],[Rahmanabad,33.639065,73.075714,3],[护照Office\",\"33.642410\",\"73.076981\",\"3\"],[\"Shamsabad\",\"33.650101\",\"73.079994\",\"3\"],[\"Faizabad\",\"33.663212\",\"73.084801\",\"3\"]],[[\"Sadiqabad朝克,33.634525,73.074326,suzk1],[Chungi否8,33.627262,73.093567,suzk1],[雅杂接地,33.628395,73.101936, suzk1],[卡纳桥,33.629967,73.112823,suzk1],[齐亚清真寺,33.637196,73.107407,124-A],[栗之路 33.643162,73.102928,124-A],[Dhok喀喇汗,33.653118,73.095444,124-A],[法扎巴德,33.663212,73.084801 ,124-A]],[[Sadiqabad集市,33.634525,73.074326,suzk1],[Chungi否8,33.627262,73.093567,suzk1],[ 雅杂接地,33.628395,73.101936,suzk1],[卡纳桥,33.629967,73.112823,suzk1],[齐亚回教堂,33.637196,73.107407 136],[栗之路,33.643162,73.102928,136],[伊克巴尔镇,33.644279,73.100113,136],[Dhok喀喇汗 33.653118,73.095444,136],[法扎巴德,33.663212,73.084801,136]],[[Sadiqabad集市,33.634525,73.074326,suzk13 ],[Dhok阿里阿卡巴,33.636997,73.092117,suzk13],[公路停止,33.679722,73.075584,suzk13],[Bhinder,33.556244 73.167946,suzk3],[Lohi Bher,33.586273,73.145493,124],[野生动物公园,33.578770,73.132309,124],[ 机场集市,33.593803,73.139938,124],[Gangal,33.612591,73.125801,124],[卡纳桥,33.629967,73.112823, 124],[齐亚清真寺,33.637196,73.107407,124],[栗之路,33.643162,73.102928,124],[Dhok喀喇汗 33.653118,73.095444,124],[法扎巴德,33.663212,73.084801,124]],[[Sadiqabad集市,33.634525,73.074326,suzk13 ],[加油机,33.634109,73.076363,suzk13],[月光集市,33.631584,73.072563,suzk13],[中央医院,33.628784 73.070641,suzk13],[纳兹影院,33.623936,73.067802,suzk13],[瓦里丝汗,33.620728,73.066078,suzk13],[Comittee朝克,33.612946,73.065193,suzk13],[Liaquat巴格,33.606808,73.064835,suzk13],[Marir哈桑,33.596905,73.064445, suzk7],[旁遮普House\",\"33.592701\",\"73.065453\",\"suzk7\"],[\"Jhanda\",\"33.588970\",\"73.076195\",\"suzk7\"],[\"Raheemabad\",\"33.599159\",\"73.080048\",\"21\"],[\"Airport\",\"33.603565\",\"73.097137\",\"21\"],[\"Tajabad\",\"33.601593\",\"73.126213\",\"21\"],[\"Koral集市,33.605282,73.131279,21] [卡纳桥,33.629967,73.112823,21] [栗之路,33.643162,73.102928, 21],[法扎巴德,33.663212,73.084801,21]],[[Sadiqabad集市,33.634525,73.074326,suzk13],[汽油泵, 33.634109,73.076363,suzk13],[月光集市,33.631584,73.072563,suzk13],[中心医院,33.628784,73.070641,suzk13], [纳兹影院,33.623936,73.067802,suzk13],[瓦里丝汗,33.620728,73.066078,suzk13],[Comittee集市,33.612946,73.065193 ,suzk13],[Liaquat巴格,33.606808,73.064835,suzk13],[医学院,33.602753,73.067200,29] [先生赛义德男孩学校,33.609600,73.078766,29] [福吉塔,33.606770,73.084106,29] [Chaklala Station\",\"33.601013\",\"73.095924\",\"29\"],[\"Raheemabad\",\"33.599159\",\"73.080048\",\"29\"],[\"Airport\",\"33.603565\",\"73.097137\",\"21\"],[\"Tajabad\",\"33.601593\",\"73.126213\",\"21\"],[\"Koral集市,33.605282,73.131279,21] [卡纳桥,33.629967,73.112823,21] [栗之路,33.643162,73.102928, 21],[法扎巴德,33.663212,73.084801,21]],[[Sadiqabad集市,33.634525,73.074326,suzk13],[汽油泵, 33.634109,73.076363,suzk13],[月光集市,33.631584,73.072563,suzk13],[中心医院,33.628784,73.070641,suzk13], [纳兹电影,33.623936,73.067802,suzk13]]]


解决方案

我解决我的问题是这样

  {尝试
    诠释计数= 0;
    如果(成功== 1){
    JSON =新的JSONObject(JSONParser.Result);
    jArray = json.getJSONArray(数据);
    StopElement _stop =新StopElement();
    的for(int i = 0; I< jArray.length();我++){
        数=计+ 1;
       // Log.d(计数器,将String.valueOf(计数));
        get_path.add(将String.valueOf(计数));
        jsonarray = jArray.getJSONArray(ⅰ);
        Log.d(路径阵列,jsonarray.toString());
        如果(getitemno大于0){
            的getPath = jArray.getJSONArray(getitemno);
            对于(INT J = 0; J< getpath.length(); J ++){
                调用getResult = getpath.getJSONArray(J);
                _stop.setName(getresult.getString(0));
                _map.setLat(getresult.getDouble(1));
                _map.setLng(getresult.getDouble(2));
                StopElement.Stop_name_list.add(_stop.getName());
                MapCoordinatesElement.Lat.add(_map.getLat());
                MapCoordinatesElement.Lng.add(_map.getLng());
                //Log.d(\"Stop名,_stop.getName());
               // Log.d(指数阵,getpath.toString());
            }
        }其他{
            的getPath = jArray.getJSONArray(0);
            对于(INT J = 0; J< getpath.length(); J ++){
                调用getResult = getpath.getJSONArray(J);
                _stop.setName(getresult.getString(0));
                _map.setLat(getresult.getDouble(1));
                _map.setLng(getresult.getDouble(2));
                StopElement.Stop_name_list.add(_stop.getName());
                MapCoordinatesElement.Lat.add(_map.getLat());
                MapCoordinatesElement.Lng.add(_map.getLng());
                //Log.d(\"Stop名,_stop.getName());
                 //Log.d(\"Index阵列,getpath.toString());
            }
        }
    }
    // Log.d(停止算法中的名字,StopElement.Stop_name_list.toString());
    // Log.d(指数停止名,StopElement.Stop_name_list.toString());
}赶上(JSONException E){
    e.printStackTrace();
}

I am making a App which receives a JSON Data From Server, User will select a value from Spinner like 0,1,2... and so on, On the Basis of number selection JSON will return a data from user defined index like 0,1.. i don't know how to parse a inner JSON Data in Android

json = new JSONObject(JSONParser.Result);
JSONArray jArray = json.getJSONArray("data");
StopElement _stop = new StopElement();
Log.d("JSON Algo Result", json.toString());

if (jArray!=null) {
    for (int i = 0; i < jArray.length(); i++) {
        jsonarray = jArray.getJSONArray(i);
        if (jsonarray != null) {
            for (int j = 0; j < jsonarray.length(); i++){
                if(i==0) {
                    jsonarray = jArray.getJSONArray(j);
                    _stop.setName(jsonarray.getString(0));
                    StopElement.Stop_name_list.add(_stop.getName());
                }
             }
        } else {
            break;
        }
    }
} else {
    return null;
}


   **JSON Data**

[[["Sadiqabad Chowk","33.634525","73.074326","suzk1"],["Chungi No 8","33.627262","73.093567","suzk1"],["Jahaz Ground","33.628395","73.101936","suzk1"],["Khana Bridge","33.629967","73.112823","suzk1"],["Kuri Road","33.643162","73.102928","21"],["Faizabad","33.663212","73.084801","21"]],[["Sadiqabad Chowk","33.634525","73.074326","suzk1"],["Petrol Pump","33.634109","73.076363","suzk1"],["Chandni Chowk","33.631584","73.072563","suzk1"],["Rahmanabad","33.639065","73.075714","3"],["Passport Office","33.642410","73.076981","3"],["Shamsabad","33.650101","73.079994","3"],["Faizabad","33.663212","73.084801","3"]],[["Sadiqabad Chowk","33.634525","73.074326","suzk1"],["Chungi No 8","33.627262","73.093567","suzk1"],["Jahaz Ground","33.628395","73.101936","suzk1"],["Khana Bridge","33.629967","73.112823","suzk1"],["Zia Masjid","33.637196","73.107407","124-A"],["Kuri Road","33.643162","73.102928","124-A"],["Dhok Kala Khan","33.653118","73.095444","124-A"],["Faizabad","33.663212","73.084801","124-A"]],[["Sadiqabad Chowk","33.634525","73.074326","suzk1"],["Chungi No 8","33.627262","73.093567","suzk1"],["Jahaz Ground","33.628395","73.101936","suzk1"],["Khana Bridge","33.629967","73.112823","suzk1"],["Zia Masjid","33.637196","73.107407","136"],["Kuri Road","33.643162","73.102928","136"],["Iqbal Town","33.644279","73.100113","136"],["Dhok Kala Khan","33.653118","73.095444","136"],["Faizabad","33.663212","73.084801","136"]],[["Sadiqabad Chowk","33.634525","73.074326","suzk13"],["Dhok Ali Akbar","33.636997","73.092117","suzk13"],["Highway Stop","33.679722","73.075584","suzk13"],["Bhinder","33.556244","73.167946","suzk3"],["Lohi Bher","33.586273","73.145493","124"],["Wild Life Park","33.578770","73.132309","124"],["Airport Chowk","33.593803","73.139938","124"],["Gangal","33.612591","73.125801","124"],["Khana Bridge","33.629967","73.112823","124"],["Zia Masjid","33.637196","73.107407","124"],["Kuri Road","33.643162","73.102928","124"],["Dhok Kala Khan","33.653118","73.095444","124"],["Faizabad","33.663212","73.084801","124"]],[["Sadiqabad Chowk","33.634525","73.074326","suzk13"],["Petrol Pump","33.634109","73.076363","suzk13"],["Chandni Chowk","33.631584","73.072563","suzk13"],["Central Hospital","33.628784","73.070641","suzk13"],["Naz Cinema","33.623936","73.067802","suzk13"],["Waris Khan","33.620728","73.066078","suzk13"],["Comittee Chowk","33.612946","73.065193","suzk13"],["Liaquat Bagh","33.606808","73.064835","suzk13"],["Marir Hassan","33.596905","73.064445","suzk7"],["Punjab House","33.592701","73.065453","suzk7"],["Jhanda","33.588970","73.076195","suzk7"],["Raheemabad","33.599159","73.080048","21"],["Airport","33.603565","73.097137","21"],["Tajabad","33.601593","73.126213","21"],["Koral Chowk","33.605282","73.131279","21"],["Khana Bridge","33.629967","73.112823","21"],["Kuri Road","33.643162","73.102928","21"],["Faizabad","33.663212","73.084801","21"]],[["Sadiqabad Chowk","33.634525","73.074326","suzk13"],["Petrol Pump","33.634109","73.076363","suzk13"],["Chandni Chowk","33.631584","73.072563","suzk13"],["Central Hospital","33.628784","73.070641","suzk13"],["Naz Cinema","33.623936","73.067802","suzk13"],["Waris Khan","33.620728","73.066078","suzk13"],["Comittee Chowk","33.612946","73.065193","suzk13"],["Liaquat Bagh","33.606808","73.064835","suzk13"],["Medical College","33.602753","73.067200","29"],["Sir Syed Boys School","33.609600","73.078766","29"],["Fauji Tower","33.606770","73.084106","29"],["Chaklala Station","33.601013","73.095924","29"],["Raheemabad","33.599159","73.080048","29"],["Airport","33.603565","73.097137","21"],["Tajabad","33.601593","73.126213","21"],["Koral Chowk","33.605282","73.131279","21"],["Khana Bridge","33.629967","73.112823","21"],["Kuri Road","33.643162","73.102928","21"],["Faizabad","33.663212","73.084801","21"]],[["Sadiqabad Chowk","33.634525","73.074326","suzk13"],["Petrol Pump","33.634109","73.076363","suzk13"],["Chandni Chowk","33.631584","73.072563","suzk13"],["Central Hospital","33.628784","73.070641","suzk13"],["Naz Cinema","33.623936","73.067802","suzk13"]]]

解决方案

I Solved My Issue like this

try {
    int count = 0;
    if (success == 1) {
    json = new JSONObject(JSONParser.Result);
    jArray = json.getJSONArray("data");
    StopElement _stop = new StopElement();
    for (int i = 0; i < jArray.length(); i++) {
        count = count + 1;
       // Log.d("Counter", String.valueOf(count));
        get_path.add(String.valueOf(count));
        jsonarray = jArray.getJSONArray(i);
        Log.d("path Array", jsonarray.toString());
        if (getitemno>0) {
            getpath = jArray.getJSONArray(getitemno);
            for (int j = 0; j < getpath.length(); j++) {
                getresult = getpath.getJSONArray(j);
                _stop.setName(getresult.getString(0));
                _map.setLat(getresult.getDouble(1));
                _map.setLng(getresult.getDouble(2));
                StopElement.Stop_name_list.add(_stop.getName());
                MapCoordinatesElement.Lat.add(_map.getLat());
                MapCoordinatesElement.Lng.add(_map.getLng());
                //Log.d("Stop names", _stop.getName());
               //  Log.d("Index Array", getpath.toString());
            }
        } else {
            getpath = jArray.getJSONArray(0);
            for (int j = 0; j < getpath.length(); j++) {
                getresult = getpath.getJSONArray(j);
                _stop.setName(getresult.getString(0));
                _map.setLat(getresult.getDouble(1));
                _map.setLng(getresult.getDouble(2));
                StopElement.Stop_name_list.add(_stop.getName());
                MapCoordinatesElement.Lat.add(_map.getLat());
                MapCoordinatesElement.Lng.add(_map.getLng());
                //Log.d("Stop names", _stop.getName());
                 //Log.d("Index Array", getpath.toString());
            }
        }
    }
    //    Log.d("Stop names of Algo", StopElement.Stop_name_list.toString());
    //  Log.d("Index Stop names", StopElement.Stop_name_list.toString());
} catch (JSONException e) {
    e.printStackTrace();
}   

这篇关于嵌套JSONArray记录分析问题的Andr​​oid的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆