[转]android中解析后台返回的json字符串

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

{"userbean":{"Uid":"100196","Showname":"\u75af\u72c2\u7684\u7334\u5b50","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":"(\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 = ;

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。

时间: 2024-10-06 21:22:47

[转]android中解析后台返回的json字符串的相关文章

ajax请求(二),后台返回的JSon字符串的转换

ajax请求,json的转换 1 $.ajax({ 2 url : "../folder/isExistAddFolder.do?t="+new Date(), 3 type : 'POST', 4 data:{"foldername":foldername, 5 "parentid":parentid, 6 "foldertype":foldertype 7 }, 8 success : function(result){

Android中解析JSON形式的数据

1.JSON(JavaScript Object Notation) 定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. 2.JSON的结构: (1) Name/Value Pairs(无序的):类似所熟知的Keyed list. Hash table.Disctionary和Assoc

Android中解析Json数据

在开发中经常会遇到解析json的问题 在这里总结几种解析的方式: 方式一: json数据: private String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]"; 解析jsonData的方法 try { //如果需要解析Json数据,首先要生成一个J

jQuery中使用$.each()遍历后台响应的json字符串问题

今天在做练习项目的时候,使用$.each()方法遍历后台传过来的json字符串时,chrome浏览器中发现如下问题  Cannot use 'in' operator to search for 'length'...... 琢磨了好久,百思不得其解.前后台代码分别如下: 后台返回json字符串: $sql = "select pid, pname, price, pic, did, count from jd_product, jd_cart_detail where pid=productI

当后台返回的json数据里有h5字符串该如何显示

有时候一些数据是需要动态显示,并且需要换行,但客户端并不知道这些数据该在哪里换行, 并按照后台编辑格式来显示,于是后台直接返回的后台编辑的h5字符串,但数据已经经过json 解析过了,再去通过专门解析h5的第三方去解析瞬间感觉头大,于是我去百度了一下如何显示 后台返回的h5字符串,有两个方法,一种是label的attributedText,还一种是webView. label的写法: NSAttributedString * attrStr = [[NSAttributedString allo

关于eval()函数处理后台返回的json数据

对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次.这种方式也适合以普通javascipt方式获取json对象,以下举例说明: var dataObj=eval("("+data+")");//转换为json对象 为什么要 eval这里要添加 ("("+data+")")呢? 原因在于:eval本身的问题

Android中解析与创建XML文件

Android中解析与创建XML文件 在Android中对XML的操作有多种方式,常见的有三种方式:SAX.DOM和PULL方式. DOM方式会把整个XML文件加载到内存中,在PC上常使用DOM的方式. 但是在性能敏感的设备上,主要采用的是SAX的方式,但是缺点是嵌套多个分支的时候处理不是很方便. 而PULL的方式类似SAX方式,同样很节省内存. 因此,本文章中只提供PULL的方式解析与创建XML文件. 基础类 本例中使用的实体类的定义如下: public class CAddress impl

js循环处理后台返回的json数组

1 <script type="text/javascript"> 2 function gongdan_search(elm){ 3 var dangqian_value=$(elm).val(); 4 if(dangqian_value){ 5 $.ajax({ 6 url:'__URL__/order_infos_list_search', 7 type:'post', 8 data:{dangqian_value:dangqian_value}, 9 success

前台如何处理后台返回的json数据

后台返回的json数据格式: { "state": true, "data": { "id": 0, "name": "testAjax"'"sex": null, "csny": null, "mz": null, "byxx": null, "sfzh": null, "yhtc":