2015-04-23 33 views
0

我最近开始使用andorid。Android从php解析JSON与多个数组响应

如何解析动态json与PHP服务器的多个数组响应。

登录响应与错误消息

{ 
    "status": 0, 
    "data": "No users found with given email." 
} 

和另一个

库存清单

{ 
    "status": 1, 
    "data": { 
     "msg": "LoggedIn", 
     "user_id": "2" 
    } 
} 

登录响应

{ 
    "status": 1, 
    "data": [ 
     { 
      "inventory_id": "33", 
      "apron_id": "123456", 
      "nickname": "uyi", 
      "location": "13", 
      "manufacture": "0", 
      "garment_type": "yuyh", 
      "color": "juki", 
      "core_material": "ytyt", 
      "Date_purchase": "2015-04-10", 
      "UID_no": "ikujki", 
      "serial": "iui", 
      "Batch": "ikk", 
      "Expiration": "2015-04-23", 
      "QTY": "898", 
      "apron_status": "0", 
      "apron_retire": "0", 
      "created_user": "2", 
      "created_time": "2015-04-10 05:22:38", 
      "update_time": "2015-04-10 05:22:38" 
     }, 
     { 
      "inventory_id": "32", 
      "apron_id": "12345mn", 
      "nickname": "gfhgh", 
      "location": "12", 
      "manufacture": "0", 
      "garment_type": "hgjyhj", 
      "color": "ytgtfghtg", 
      "core_material": "fhgfhy", 
      "Date_purchase": "2015-04-28", 
      "UID_no": "rtryttttttttt", 
      "serial": "hfh", 
      "Batch": "rtrrtyy", 
      "Expiration": "2015-03-17", 
      "QTY": "7688", 
      "apron_status": "0", 
      "apron_retire": "0", 
      "created_user": "2", 
      "created_time": "2015-04-10 05:15:54", 
      "update_time": "2015-04-10 05:15:54" 
     } 
    ] 
} 

在此先感谢。

+0

http://www.androidhive.info/2012/01/android -json-parsing-tutorial/ –

+0

你试过了什么? – micky

+0

是的教程是明确的谢谢@MdAbdulGafur –

回答

1

获得登录响应,你可以像这样

JSONObject jobj=new JSONObject(result.toString()); 

String status=jobj.getString("status"); 

if(status.equalsIgnoreCase("1")) 
{ 
    //login success 

    JSONObject Jdata=jobj.getJSONObject("data"); 

    String Message=Jdata.getString("msg"); 
    String UserId=Jdata.getString("user_id"); 
} 
else 
{ 
    //failure 
} 

和库存清单,你可以像这样

JSONObject jobj=new JSONObject(result.toString()); 

JSONArray arrData=jobj.getJSONArray("data"); 

for (int i = 0; i < arrData.length(); i++) 
{ 

     JSONObject jdata=arrData.getJSONObject(i); 

     //here u can get all field like this 

     String nickname=jdata.getString("nickname"); 
} 
+0

登录数据Json不总是数组它将错误文本也说“无效登录详细信息“@Dhaiyur –

+0

@manikantag发表回应 – Dhaiyur

+0

添加请参阅@Dhaiyur –

0

调查JSONObjectJSONArray类。

您可以非常简单解析:

JSONObject json = new JSONObject(jsonString); 
int status = json.getInt("status"); 

同时使用数组和对象为你的“数据”键会使事情刺激你。你应该考虑使用不同的密钥或另一个密钥,它会向你指明你正在阅读的内容。

+0

登录数据Json不是总是数组它将是错误文本也说“无效登录详细信息”@Knossos –