Android的JSON对象在code一些问题没有能够得到从PHP JSON数组 [英] android json object some issue in code not able to get the json array from php

查看:83
本文介绍了Android的JSON对象在code一些问题没有能够得到从PHP JSON数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不能从PHP端得到​​如下数组对象

  {结果:sucess,数据:画的服务,水暖服务
电气服务,木工服务,铝作品,
家居清洁,家电,上光清洁,
院子里维护,水箱清洗
电子服务,室内装潢服务,干洗店,],味精:Sucessfull}

这是从PHP端的json的反响

和使用im

 保护字符串doInBackground(字符串参数... args){
                清单<&的NameValuePair GT; userpramas =新的ArrayList<&的NameValuePair GT;();
                //字符串A =(spinerplan.getSelectedItem()的toString());
                userpramas.add(新BasicNameValuePair(PACKAGE_TYPE,glbstr_plan));                JSONObject的JSON = jsonParser.makeHtt prequest(CommonClass.SERVIVECS_URL,POST,
                        userpramas);
                //Log.e(\"testing,json的URL值=+ JSON);
                尝试{                    字符串的反响= json.getString(数据);                    JSONObject的servicejson =新的JSONObject(性反应);
                    JSONArray jArray = servicejson.getJSONArray(数据);                    的System.out.println(***** JARRAY *****+ jArray.length());                    的for(int i = 0; I< jArray.length();我++){
                        JSONObject的json_data = jArray.getJSONObject(I)                        Log.e(测试,性反应+ json_data);
                    }
                    Log.e(测试,性反应+的反响);                }赶上(JSONException E){
                    e.printStackTrace();
                }                返回的反响;
            }


解决方案

我觉得你的JSON响应是错误的。

您需要生成响应这样的..

  {结果:sucess,数据:[{serv_name:绘画服务},
{serv_name:水暖服务},{serv_name:电子服务},
{serv_name:木工服务},{serv_name:铝作品},
{serv_name:家居清洁},{serv_name:家电},
{serv_name:上光清洁},{serv_name:庭院维护},
{serv_name:水油罐清洗},{serv_name:电子服务},
{serv_name:室内装潢服务},{serv_name:干洗店},
{serv_name:}],味精:Sucessfull}

,那么你可以使用下面code解析响应..

 字符串的反响= json.getString(数据);
JSONObject的servicejson =新的JSONObject(性反应);
JSONArray jArray = servicejson.getJSONArray(数据);
的System.out.println(***** JARRAY *****+ jArray.length());
的for(int i = 0; I< jArray.length();我++){
   JSONObject的json_data = jArray.getJSONObject(I)
   串服务名= json_data.getString(serv_name);
   Log.e(测试,性反应+服务名);
}
Log.e(测试,性反应+的反响);

I cant get the following array object from the php side

{"result":"sucess","data":["Painting service","Plumbing service", 
"Electrical service","Carpentry Services","Aluminium works",
"House Cleaning","Home Appliance","Glazing Cleaning",
"Yard Maintenance","Water Tank Cleaning",
"Electronics Services","Upholstery Services","DRY CLEANERS",""],"msg":" Sucessfull"}

this is my json responce from php side

and im using

   protected String doInBackground(String... args) {
                List<NameValuePair> userpramas = new ArrayList<NameValuePair>();
                //String a =(spinerplan.getSelectedItem().toString());
                userpramas.add(new BasicNameValuePair("package_type",glbstr_plan));

                JSONObject json = jsonParser.makeHttpRequest(CommonClass.SERVIVECS_URL, "POST",
                        userpramas);
                //Log.e("testing", "json url value=" + json);
                try {

                    String responce = json.getString("data");

                    JSONObject servicejson = new JSONObject(responce);
                    JSONArray jArray = servicejson.getJSONArray("data");

                    System.out.println("*****JARRAY*****" + jArray.length());

                    for(int i=0; i<jArray.length(); i++){
                        JSONObject json_data = jArray.getJSONObject(i);

                        Log.e("testing", "responce" + json_data);
                    }




                    Log.e("testing", "responce" + responce);

                } catch (JSONException e) {
                    e.printStackTrace();
                }

                return responce;
            }

解决方案

I think your JSON response is wrong..

You need to generate response like this..

{"result":"sucess","data":[{"serv_name":"Painting service"},
{"serv_name":"Plumbing service"},{"serv_name":"Electrical service"},
{"serv_name":"Carpentry Services"},{"serv_name":"Aluminium works"},
{"serv_name":"House Cleaning"},{"serv_name":"Home Appliance"},
{"serv_name":"Glazing Cleaning"},{"serv_name":"Yard Maintenance"},
{"serv_name":"Water Tank Cleaning"},{"serv_name":"Electronics Services"},
{"serv_name":"Upholstery Services"},{"serv_name":"DRY CLEANERS"},
{"serv_name":""}],"msg":" Sucessfull"}

then you can parse the response using below code..

String responce = json.getString("data");
JSONObject servicejson = new JSONObject(responce);
JSONArray jArray = servicejson.getJSONArray("data");
System.out.println("*****JARRAY*****" + jArray.length());
for(int i=0; i<jArray.length(); i++){
   JSONObject json_data = jArray.getJSONObject(i);
   String serviceName = json_data.getString("serv_name");
   Log.e("testing", "responce" + serviceName);
}
Log.e("testing", "responce" + responce);

这篇关于Android的JSON对象在code一些问题没有能够得到从PHP JSON数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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