> Android > 深入理解Android网络编程:技术详解与最佳实践 3.3.2 JSON数据解析 2013-08-14 11:11:57 我要投稿
本文所属图书 > 深入理解Android网络编程:技术详解与最佳实践
全书共11章,分为三个部分:概述篇(第1章)在介绍了Android开发平台后,重点讲解了Android网络程序的功能及开发环境的配置,引领读者走进Android网络编程的大门;实战篇(第2~8章),详细讲解了TCP、UDP、HTTP等... 立即去当当网订购
解析JSON数据时,首先需要明确待解析的是JSON Object还是JSON Array,然后再解析。举例如下。
(1)解析JSON Object之一
下面是一个简单的JSON Object,name为名称,Lili是name的值,将name和Lili用“:”隔开,其文本如下。
{"name":"Lili"}
JSONObject.getString("String")方法可以得到JSON对象中String名称对应的值。下面是对上面JSON对象的解析方法:
// 新建JSONObject, jsonString字符串中为上面的JSON对象的文本
JSONObject demoJson = new JSONObject(jsonString);
// 获取name名称对应的值
String s = demoJson.getString("name");
(2)解析JSON Object之二
下面是一个包含两个“名称/值”对的JSON对象,两个“名称/值”对分别是"name1":"android"和"name2":"iphone",中间使用“,”隔开,其文本如下:
{"name1":"android","name2":"iphone"}
上面JSON对象的解析方法如下:
// 新建JSONObject对象,将jsonString字符串转换为JSONObject对象
// jsonString字符串为上面的文本
JSONObject demoJson = new JSONObject(jsonString);
// 获取名称为name1对应的值
String name1= demoJson.getString("name1");
// 获取名称为name2对应的值
String name2 = demoJson.getString("name2");
(3)解析JSON Array
下面是一个简单的JSONArray,number为数组名称,[1,2,3]为数组的内容,其JSON文本表示如下:
{"number":[1,2,3]}
上面的JSON Array解析方法如下:
// 新建JSONObject对象,将jsonString字符串转换为JSONObject对象
// jsonString字符串为上面的文本
JSONObject demoJson = new JSONObject(jsonString);
// 获取number对应的数组
JSONArray numberList = demoJson.getJSONArray("number");
// 分别获取numberList中的每个值
for(int i=0; i<numberList.length(); i++){
// 因为数组中的类型为int,所以为getInt,其他getString、getLong具有类似的用法
System.out.println(numberList.getInt(i));
}
(4)解析JSON Object和JSON Array混合对象
下面是一个JSON Object和JSON Array的混合文本,mobile为JSON Object名称,其对应的值为JSON Array,JSON Array中包含的对象为JSON Object,其文本表示如下:
{"mobile":[{"name":"android"},{"name":"iphone"}]}
上面文本的解析方法如下:
// 新建JSONObject对象,将jsonString字符串转换为JSONObject对象
// jsonString字符串为上面的文本
JSONObject demoJson = new JSONObject(jsonString);
// 首先获取名为mobile的对象对应的值
// 该值为JSONArray,这里创建一个JSONArray对象
JSONArray numberList = demoJson.getJSONArray("mobile");
// 依次取出JSONArray中的值
for(int i=0; i<numberList.length(); i++){
// 从第i个取出JSONArray中的值为JSON Object “名称/值”对
// 通过getString("name")获取对应的值
System.out.println(numberList.getJSONObject(i).getString("name"));
}
3.3.2 为Android构建Linux的操作系统
3.3.2 CSS属性
3.3.2 旋转手势
3.3.2 服务组件的开发和使用
3.3.2 构建V3的开始菜单
3.3.2 Matrix类的方法
3.3.2 探测方向改变
3.3.2 ListView
3.3.2 内容提供者
3.3.2 表格布局案例
图文推荐
排行热门
199 | 4.4.3 使用PreferenceFragment 185 | 1.2.3 配置Android SDK Manager 179 | 1.2.9 ActionBar框架 169 | 10.1.3 Bitmap和BitmapFactory 164 | 3.11.2 ListFragment 137 | 1.3.1 android.util.LruCache 131 | 2.2.1 动态添加Fragment 123 |
文章 下载 读书
· Win2000下关闭无用端口 · 禁止非法用户登录综合设置 [win9x篇] · 关上可恶的后门——消除NetBIOS隐患 · 网络入侵检测系统 · 潜伏在Windows默认设置中的陷井 · 调制解调器的不安全 · 构建Windows 2000服务器的安全防护林 · SQL Server 2000的安全配置 · Windows优化大师注册机源码 · Process Viewer 汉化版 · Aspcode动画教程 · WIN 2000服务器防止ICMP数据包攻击教程 · 实现网络隐身的简单方法 · 手工进行克隆帐号 · 用W32DASM破解网页合并器的密码 · 注册表操作动画教程 · 黑客攻防技术宝典:Web实战篇(第2版) · 超级网管员——网络安全 · 代码大全(第二版) · 软件之道:软件开发争议问题剖析 · CSS插件工具箱 · CSS入门经典(第3版) · · CMMI+敏捷整合开发