您的位置:首页 > 移动开发 > Objective-C

android 学习笔记 解析json格式的数据 JSONObject 和GSON解析json格式数据

2015-08-31 11:04 896 查看
解析JSON数据也有很多种方法,可以使用官方提供的JSONObject,也可以使用谷歌的开源库GSON。另外,一些第三方的开源库如Jackson、FastJSON等也非常不错。

下面是JSONObject 解析json 数据的代码,传入的jsonData 就是请求服务器 返回的json字符串
<pre name="code" class="java"> private void parseJSONWithJSONObject(String jsonData) {
try {
//将服务器返回的数据传入到了一个JSONArray对象中
JSONArray jsonArray = new JSONArray(jsonData);
//然后循环遍历这个JSONArray,从中取出的每一个元素都是一个JSONObject对象,
//每个JSONObject对象中又会包含id、name和 version这些数据。
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);

String id = jsonObject.getString("id");
String name = jsonObject.getString("name");

String version = jsonObject.getString("version");
Log.d("MainActivity", "id is " + id);

Log.d("MainActivity", "name is " + name);
Log.d("MainActivity", "version is " + version);

}
} catch (Exception e) {

e.printStackTrace();
}

}




使用GSON 解析JSON数据

那么GSON库究竟是神奇在哪里呢?其实它主要就是可以将一段JSON格式的字符串自动映射成一个对象,从而不需要我们再手动去编写代码进行解析了。比如说一段JSON格式的数据如下所示:

{"name":"Tom","age":20}
那我们就可以定义一个Person类,并加入name和age这两个字段,然后只需简单地调用如下代码就可以将JSON数据自动解析成一个Person对象了:

Gson gson = new Gson();
Person person = gson.fromJson(jsonData, Person.class);
如果需要解析的是一段JSON数组会稍微麻烦一点,我们需要借助TypeToken将期望解析成的数据类型传入到fromJson()方法中,如下所示:

List<Person> people = gson.fromJson(jsonData, new TypeToken<List<Person>>() {}.getType());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android