Android使用php解析多个数组响应的JSON

时间:2015-04-23 12:04:04

标签: android json

我最近开始使用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"
        }
    ]
}

提前致谢。

2 个答案:

答案 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)

调查JSONObjectJSONArray类。

你可以非常简单地解析:

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

同时使用数组和对象作为“数据”键会让您感到恼火。您应该考虑使用不同的密钥或其他密钥来指示您正在阅读的内容。