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,那样的话,可以顺着上面的思想,在循环中在嵌套一个循环,逐层取出即可!
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhuchenglin830/article/details/49962023
上一篇android中ExpandableListView控件,点击下一个时,上一个自动收起
下一篇java.lang.IllegalArgumentException及at android.view.Surface.nativeUnlockCanvasAndPost(Native Method)
想对作者说点什么? 我来说一句

JSON解析数据listview显示

2015年01月06日 1.14MB 下载

android中的智能指针案例

2016年05月03日 9KB 下载

没有更多推荐了,返回首页

关闭
关闭