android中json数据解析详解

需要解析的json数据如下:

{

    "head": {                        //这是一个JSONObject,里面存放需要的相关信息



        "code": "0",               //这是一个键值对,里面存放需要的值(主要取里面的值来使用)



    },
    "body": {                      //这同样是一个JSONObject,里面存放需要的相关信息
        "List": [                    //这是一个JSONArray
            {
                "测试数据": "测试数据"   //这是一个键值对,里面存放需要的值(主要取里面的值来使用)
            },
            {
                "测试数据": "测试数据"   //这是一个键值对,里面存放需要的值(主要取里面的值来使用)
            }
        ]
    }

}

下面用解析上面的json数据:

HttpPost httpRequestLogin = new HttpPost(url); //url是请求json数据的地址



try {

// 发出HTTP request

httpRequestLogin.setEntity(new StringEntity(jsonObjectLogin.toString(), HTTP.UTF_8));   //jsonObjectLogin.toString()是发出请求的json数据

// 取得HTTP response

HttpResponse httpResponse1 = new DefaultHttpClient().execute(httpRequestLogin);

  // 若状态码为200 ok

if (httpResponse1.getStatusLine().getStatusCode() == 200) {

// 取出回应字串,返回的所有信息,均存放在该字符串中

String strResultLogin = EntityUtils.toString(httpResponse1.getEntity());

// 整体的数据是个jsonobject对象,将字符串转化成jsonObjectLogin.toString()

JSONObject object = new JSONObject(strResultLogin);

// 取得head的值,值是个JSONObject对象

JSONObject head = object.getJSONObject("head");

String code = head.getString("code");   //在JSONObject类型的head下用getString方法取出,“code”对应的值,放入String中

// 取得body的值,值是个JSONObject对象

JSONObject body = object.getJSONObject("body");

  //在JSONObject类型的body下用getJSONObject方法取出,“List”对应的JSONArray值,放入JSONArray中

JSONArray List = body.getJSONArray("List");

for (int i = 0; i < List.length(); i++) {    //取出JSONArray之后,利用循环逐个出去数组里面的值

JSONObject object2 = List.getJSONObject(i);

String 测试数据 = object2.getString("测试数据");



} 

}else{

}

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (JSONException e) {

e.printStackTrace();

}

以上为一般json的解析,在复杂的json,可能也许就是JSONArray里面嵌套JSONArray,那样的话,可以顺着上面的思想,在循环中在嵌套一个循环,逐层取出即可!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值