我最近开始使用andorid。
如何使用来自php服务器的多个数组响应来解析动态json。
登录响应
{
"status": 1,
"data": {
"msg": "LoggedIn",
"user_id": "2"
}
}
登录回复,错误消息
{
"status": 0,
"data": "No users found with given email."
}
和另一个
库存清单
{
"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 :(得分: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");
}
答案 1 :(得分:0)
调查JSONObject和JSONArray类。
你可以非常简单地解析:
JSONObject json = new JSONObject(jsonString);
int status = json.getInt("status");
同时使用数组和对象作为“数据”键会让您感到恼火。您应该考虑使用不同的密钥或其他密钥来指示您正在阅读的内容。