android 解析json数据格式

转载 2015年07月08日 09:35:46
json数据格式解析我自己分为两种;


一种是普通的,一种是带有数组形式的;




 


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


{"userbean":{"Uid":"100196","Showname":"\u75af\u72c2\u7684\u7334\u5b50","Avtar":null,"State":1}}


分析代码如下:


// TODO 状态处理 500 200 
                int res = 0; 
                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":"(\u4eb2\u5b50)ddssd","category_name":"\u9ed8\u8ba4\u5206\u7c7b","showtime":"1288927800","endshowtime":"1288931400","allDay":false}, 
            {"calendar_id":"1706","title":"(\u65c5\u884c)","category_name":"\u9ed8\u8ba4\u5206\u7c7b","showtime":"1288933200","endshowtime":"1288936800","allDay":false} 
            ] 
    } 
}


分析代码如下:


// TODO 状态处理 500 200 
                int res = 0; 
                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=0;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。

相关文章推荐

Android JSON数据格式的解析,与简单对象、带泛型的List和Map的转换,以及GSON的使用

首先,这里要先说一下 JSON 的语法。 1、使用 JSON 语法创建对象         如图,创建 object 时,总是以 “{” 开始,以 “}” 结束,对象的每个属性和属性值之间以英文冒...

Android数据格式解析对象JSON用法

Android数据格式解析对象JSON用法   1.JSON概念:        一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换。JSON采用...

Android -- json数据格式解析练习

题目: 通过多种方式去解析下面的Json字符串,并通过listView显示出来 {"resultCode":0,resultMsg":请求成功", "dataList":[ {"name"...

Android 数据格式解析对象 JSON 用法

1.JSON概念:        一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行...
  • lyb2518
  • lyb2518
  • 2012年07月02日 15:19
  • 1070

android之解析json数据格式详解

1.JSON解析      (1).解析Object之一: view sourceprint? 1 {"url":"http://www.cnblogs.c...

Android 解析json数据格式

引用:http://www.eoeandroid.com/thread-109723-1-1.html json数据格式解析我自己分为两种;   一种是普通的,一种是带有数组形式的;   普...
  • kbeanwu
  • kbeanwu
  • 2011年10月28日 16:29
  • 674

Android数据格式解析对象JSON用法

1.JSON概念:        一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。...

Android JSON数据格式解析

给服务端发送请求后,服务端会返回一连串的数据,这些数据在大部分情况下都是XML格式或者JSON格式。然后JSON相对XML来说解析相对方便一些,所以先说说JSON的解析。 JSON的基本数据格式...
  • vaecer
  • vaecer
  • 2014年11月12日 17:00
  • 754

android JSON数据格式 解析

一、   JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。  Json建构于两种结构:      1、“名称/值”对的集合(A collect...

Android数据格式解析对象JSON用法

1.JSON概念:        一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 解析json数据格式
举报原因:
原因补充:

(最多只允许输入30个字)