ANDROID解析JSON数据

这一个环节可以说是卡的比较久的了。对于用惯了php那样的json解析方式的我,头一次使用JAVA的json解析方法,感到非常的头疼。

首先,服务端返回的数据格式如下:

1[ 2    { 3        "title":"\u8bdd\u8d39\u514d\u8d39\u62bd", 4        "aname":"\u8bdd\u8d39\u514d\u8d39\u62bd", 5        "url":"http:\/\/www.yaya888.com\/help-338.html", 6        "style":"", 7        "image":"\/upload1\/2014\/03\/20140317165244884.png" 8    }, 9    { 10        "title":"\u5fae\u56e2\u8d2d", 11        "aname":"\u5fae\u56e2\u8d2d", 12        "url":"", 13        "style":"", 14        "image":"\/upload1\/2014\/03\/20140316115154553.png" 15    } 16]

从这个结构看,第一层是一个数组,数组里面包含的是2个JSON对象。

如果使用PHP则不必担心这些问题,函数会自动处理。但是JAVA不行。

所以,因为第一层是个数组,所以不能使用JSONObject对象来解析这个字符串,而要使用JSONArray;而内层的JSON对象,需要使用JSONObject来解析。

代码如下:

1try { 2    JSONArray jsonObj = new JSONArray(json)3    int len = jsonObj.length(); 4    for(int i = 0; i< len; i ++) { 5        JSONObject item = jsonObj.getJSONObject(i); 6    } 7} catch (Exception e){}

这里使用的包为org.json.JSONObject,org.json.JSONArray,没必要去网上下些JSONObject,gson。

至于简单的或者更复杂的json数据结构,无需去理会用什么方法,只需要打印出json。根据每一层的json结构是数组或是json对象,字符串来解析即可。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang

Android如何解析json字符串

前言上一篇文章介绍了服务器用Golang如何解析json字符串,今天我们来看看Android客户端是如何解析json字符串的。正文Golang如何解析post请求中的json字符串(https://www.helloworld.net/p/O917HGeiALU2D)使用java语句如何正确解析json字符串呢?举一个例子,假如我们想从rtc_i

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )