zoukankan      html  css  js  c++  java
  • android中解析后台返回的json字符串

    普通形式的:
    服务器端返回的json数据格式如下:

    {"userbean":{"Uid":"100196","Showname":"u75afu72c2u7684u7334u5b50","Avtar":null,"State":1}}

    分析代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    // TODO 状态处理 500 200
    int res = ;
    res = httpClient.execute(httpPost).getStatusLine().getStatusCode();
    if (res == 200) {
        /**
         * 当返回码为200时,做处理
         * 得到服务器端返回json数据,并做处理
         * */
        HttpResponse httpResponse = httpClient.execute(httpPost);
        StringBuilder builder = new StringBuilder();
        BufferedReader bufferedReader2 = new BufferedReader(
            new InputStreamReader(httpResponse.getEntity().getContent()));
        String str2 = "";
        for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2
            .readLine()) {
        builder.append(s);
        }
        Log.i("cat", ">>>>>>" + builder.toString());
     
    JSONObject jsonObject = new JSONObject(builder.toString())
        .getJSONObject("userbean");
     
    String Uid;
    String Showname;
    String Avtar;
    String State;
     
    Uid = jsonObject.getString("Uid");
    Showname = jsonObject.getString("Showname");
    Avtar = jsonObject.getString("Avtar");
    State = jsonObject.getString("State");
    带数组形式的:
    服务器端返回的数据格式为:
     
    {"calendar":
    {"calendarlist":
    [
    {"calendar_id":"1705","title":"(u4eb2u5b50)ddssd","category_name":"u9ed8u8ba4u5206u7c7b","showtime":"1288927800","endshowtime":"1288931400","allDay":false},
    {"calendar_id":"1706","title":"(u65c5u884c)","category_name":"u9ed8u8ba4u5206u7c7b","showtime":"1288933200","endshowtime":"1288936800","allDay":false}
    ]
    }
    }
     
    分析代码如下:
     
    // TODO 状态处理 500 200
    int res = ;
    res = httpClient.execute(httpPost).getStatusLine().getStatusCode();
    if (res == 200) {
        /**
         * 当返回码为200时,做处理
         * 得到服务器端返回json数据,并做处理
         * */
        HttpResponse httpResponse = httpClient.execute(httpPost);
        StringBuilder builder = new StringBuilder();
        BufferedReader bufferedReader2 = new BufferedReader(
            new InputStreamReader(httpResponse.getEntity().getContent()));
        String str2 = "";
        for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2
            .readLine()) {
        builder.append(s);
        }
        Log.i("cat", ">>>>>>" + builder.toString());
        /**
         * 这里需要分析服务器回传的json格式数据,
         */
        JSONObject jsonObject = new JSONObject(builder.toString())
            .getJSONObject("calendar");
        JSONArray jsonArray = jsonObject.getJSONArray("calendarlist");
        for(int i=;i<jsonArray.length();i++){
        JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i);
        CalendarInfo calendarInfo = new CalendarInfo();
        calendarInfo.setCalendar_id(jsonObject2.getString("calendar_id"));
        calendarInfo.setTitle(jsonObject2.getString("title"));
        calendarInfo.setCategory_name(jsonObject2.getString("category_name"));
        calendarInfo.setShowtime(jsonObject2.getString("showtime"));
        calendarInfo.setEndtime(jsonObject2.getString("endshowtime"));
        calendarInfo.setAllDay(jsonObject2.getBoolean("allDay"));
        calendarInfos.add(calendarInfo);
        }

    总结,普通形式的只需用JSONObject ,带数组形式的需要使用JSONArray 将其变成一个list。

    卓尔不凡Tony
  • 相关阅读:
    jQuery 源码解析(二十四) DOM操作模块 包裹元素 详解
    jQuery 源码解析(二十三) DOM操作模块 替换元素 详解
    jQuery 源码解析(二十二) DOM操作模块 复制元素 详解
    jQuery 源码分析(二十一) DOM操作模块 删除元素 详解
    jQuery 源码分析(二十) DOM操作模块 插入元素 详解
    jQuery 源码分析(十九) DOM遍历模块详解
    python 简单工厂模式
    python 爬虫-协程 采集博客园
    vue 自定义image组件
    微信小程序 image组件坑
  • 原文地址:https://www.cnblogs.com/dyytsoft/p/10482380.html
Copyright © 2011-2022 走看看