这一个环节可以说是卡的比较久的了。对于用惯了php那样的json解析方式的我,头一次使用JAVA的json解析方法,感到非常的头疼。
首先,服务端返回的数据格式如下:
[ { "title":"\u8bdd\u8d39\u514d\u8d39\u62bd", "aname":"\u8bdd\u8d39\u514d\u8d39\u62bd", "url":"http:\/\/www.yaya888.com\/help-338.html", "style":"", "image":"\/upload1\/2014\/03\/20140317165244884.png" }, { "title":"\u5fae\u56e2\u8d2d", "aname":"\u5fae\u56e2\u8d2d", "url":"", "style":"", "image":"\/upload1\/2014\/03\/20140316115154553.png" }]
从这个结构看,第一层是一个数组,数组里面包含的是2个JSON对象。
如果使用PHP则不必担心这些问题,函数会自动处理。但是JAVA不行。
所以,因为第一层是个数组,所以不能使用JSONObject对象来解析这个字符串,而要使用JSONArray;而内层的JSON对象,需要使用JSONObject来解析。
代码如下:
try { JSONArray jsonObj = new JSONArray(json); int len = jsonObj.length(); for(int i = 0; i< len; i ++) { JSONObject item = jsonObj.getJSONObject(i); }} catch (Exception e){}
这里使用的包为org.json.JSONObject,org.json.JSONArray,没必要去网上下些JSONObject,gson。
至于简单的或者更复杂的json数据结构,无需去理会用什么方法,只需要打印出json。根据每一层的json结构是数组或是json对象,字符串来解析即可。