这一个环节可以说是卡的比较久的了。对于用惯了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对象,字符串来解析即可。