Android数据格式解析对象JSON用法(转)
地址:http://www.cnblogs.com/devinzhang/archive/2012/01/09/2317315.html
里面的重点:
JSON解析案例
(1)解析Object之一:
String jsonString ={"url":"http://www.cnblogs.com/qianxudetianxia"};
解析方法:
JSONObject demoJson = new JSONObject(jsonString);
String url = demoJson.getString("url");
(2)解析Object之二:
String jsonString ={"name":"android"," version":"Beta1.0"};
解析方法:
JSONObject demoJson = new JSONObject(jsonString);
String name = demoJson.getString("name");
String version = demoJson.getString("version");
System.out.println("name:"+name+",version:"+version);
(3).解析Array之一:
String jsonString ={"number":[1,2,3]};
解析方法:JSONObject demoJson = new JSONObject(jsonString);JSONArray numberList = demoJson.getJSONArray("number");for(int i=0; i<numberList.length(); i++){ //因为数组中的类型为int,所以为getInt,其他getString,getLong同用 System.out.println(numberList.getInt(i));}(4).解析Array之二:
String jsonString ={"number":[[1],[2],[3]]};
解析方法:
//嵌套数组遍历
JSONObject demoJson = new JSONObject(jsonString);
JSONArray numberList = demoJson.getJSONArray("number");
for(int i=0; i<numberList.length(); i++){
//获取数组中的数组
System.out.println(numberList.getJSONArray(i).getInt(0));
}
(5).解析Object和Array:
String jsonString ={"mobile":[{"name":"android"},{"name":"iphone"}]};
解析方法:
JSONObject demoJson = new JSONObject(jsonString);
JSONArray numberList = demoJson.getJSONArray("mobile");
for(int i=0; i<numberList.length(); i++){
System.out.println(numberList.getJSONObject(i).getString("name"));
}
(6).使用optType:
上面的例子,使用getType在碰到查找不到节点的时候,会抛出异常。
如果使用optType,找不到节点,则返回null或者默认值。
//无url节点,抛出异常
String url = demoJson.getString("url"); //无url节点,返回空,如果为基本类型,则返回默认值
String url = demoJson.optString("url");
(7).UTF-8的BOM头导致解析JSON异常的问题
到json文件保存为utf-8的时候,在windows平台下,会产生bom头"EF BB EF"字节在文本的最前面(需要用十六进制工具打开才能看的到)。
有两种解决方法:
a.使用UltraEdit打开json文件, 另存为的时候,选择格式UTF-8,无BOM头,如果还不行,在用记事本打开,另存为UTF-8下,多试几次就可以了。
b.使用代码处理,截取json主体内容:
String jsonString = getJsonString();
jsonString =jsonString.substring(jsonString.indexOf("{"),jsonString.lastIndexOf("}")+1);
Android数据格式解析对象JSON用法(转)的更多相关文章
- Android数据格式解析对象JSON用法
1.JSON概念: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. JSON可以将 ...
- Android Gson解析复杂Json
JSON原数据 {"total":1,"rows":[{"ID":1,"Title":"台州初级中学招收初一年 ...
- iOS网络交互数据格式解析之json
作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式.从ios5开 始,apple提供了对json的原生支持,但为了兼容以前的ios版本,我们仍然需要使用第三方库来解析常用 ...
- C++通过jsoncpp类库读写JSON文件-json用法详解
介绍: JSON 是常用的数据的一种格式,各个语言或多或少都会用的JSON格式. JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择. ...
- JS中将JSON的字符串解析成JSON数据格式《转》
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
- Android 中解析 JSON
有什么不懂的可以去官网去看看:www.json.org 在google android中也有关于解析JSON的类库:JsonReader,但是只能在3.0以后的版本中才可以用,在这里我们用google ...
- 1.Android中解析json程序代码
Android程序解析json数据可以通过gson的方式,这种情况需要导入相应的jar包.测试代码如下: @Override protected void onCreate(Bundle savedI ...
- JSON字符串解析成JSON数据格式
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
- Android网络请求与数据解析,使用Gson和GsonFormat解析复杂Json数据
版权声明:未经博主允许不得转载 一:简介 [达叔有道]软件技术人员,时代作者,从 Android 到全栈之路,我相信你也可以!阅读他的文章,会上瘾!You and me, we are family ...
随机推荐
- .Net程序员之Python基础教程学习----列表和元组 [First Day]
一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...
- Jetty使用攻略
jetty作为一款小型的web容器用处很大,因为其小巧强大,经常作为嵌入式的组件处理http交互. Jetty 作为一个独立的 Servlet 引擎可以独立提供 Web 服务,但是它也可以与其他 We ...
- QuickFix/N简介
QuickFix/N简介 FIX是Financial Information eXchange的简称.FIX是一种专门为实时电子证券交易设计的标准消息协议.该协议由FIX protocol, Ltd ...
- [No00000B]MS OFFICE 2013 快捷键大全
常用快捷键 快捷键 作用 Ctrl+Shift+Spacebar 创建不间断空格 Ctrl+-(连字符) 创建不间断连字符 Ctrl+B 使字符变为粗体 Ctrl+I 使字符变为斜体 Ctrl+U 为 ...
- Android应用性能测试
Android应用性能测试 Android用户也许会经常碰到以下的问题: 1)应用后台开着,手机很快没电了——应用耗电大 2)首次/非首次启动应用,进入应用特别慢——应用启动慢 3)应用使用过程中,越 ...
- PAT 1017. A除以B (20)
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔. 输出格 ...
- Splay整理
伸展树(Splay Tree),也叫分裂树,是一种二叉排序树,它能在O(log n)内完成插入.查找和删除操作.(来自百科) 伸展树的操作主要是
- Cordova - 使用Cordova开发iOS应用实战3(添加Cordova控制台插件)
Cordova - 使用Cordova开发iOS应用实战3(添加Cordova控制台插件) 前文介绍了通过 Safari 的 Web检查器,可以看到控制台输出的信息.但有时这样调试代码不太方便,如果在 ...
- 获取iTextSharp 的image 报错
获取itextsharp类库的image对象的时候报错 outofmemory .经过艰苦的测试发现jpeg类型是可行的的 iTextSharp.text.Image je = iTextShar ...
- ios蓝牙开发(三)ios连接外设的代码实现:手机app去读写蓝牙设备。
手机app去读写蓝牙设备....... 代码下载: 原文博客主提供Github代码连接,地址是:https://github.com/coolnameismy/demo ios连接外设的代码实现流程: ...