ANDROID解析JSON数据 4年前

移动应用
351
ANDROID解析JSON数据

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

闷骚的老处男
I asked him, 'how can a man be brave if he's afraid?' 'That is the only time a man can be brave,' he told me.
3
发布数
0
关注者
1648
累计阅读

热门教程文档

Kotlin
68小节
MyBatis
19小节
Objective-C
29小节
React Native
40小节
Flutter
105小节
广告