地址: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).解析ObjectArray:

 
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-8BOM头导致解析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);

最新文章

  1. LRU LFU FIFO 转载
  2. ZeroMQ接口函数之 :zmq_ctx_set - 设置环境上下文属性
  3. C# 生成xml文件
  4. 关于软件工程结对编程作业 PairProject : Elevator Scheduler(电梯调度算法的实现与测试)的总结
  5. myeclipse的debug模式中breakpoint窗口怎么调出来
  6. 6.django笔记之orm
  7. 深入理解 KVC\KVO 实现机制 — KVO
  8. Eclipse 下载与安装(2014.12.26——by小赞)
  9. 移动端消除click事件的延迟效果
  10. HDU Today--hdu2112
  11. Know Thy Complexities!
  12. PHP高手干货分享:要大大提高PHP效率
  13. Redis初始化配置及增删改查
  14. 传说中的WCF(1):这东西难学吗?
  15. 基于opencv的gpu与cpu对比程序,代码来自opencv的文档中
  16. jvisualvm中VisualGC插件提示:不受此JVM支持
  17. php如何以post形式发送xm并返回xmll数据
  18. Erlang ETS Table
  19. redis消息通知(任务队列/优先级队列/发布订阅模式)
  20. CentOS6.5在虚拟机中安装

热门文章

  1. Java Web之Filter
  2. 关于TD-LTE网络MRO分析中的一些疑问
  3. Appium学习实践(三)测试用例脚本以及测试报告输出
  4. Codeforces 549D. Hear Features[贪心 英语]
  5. USACO Sorting a Three-Valued Sequence
  6. 平面直接坐标系线段相交问题(小Q(钟神)的问题)
  7. 游戏/APP的多语言系统设计
  8. JAVA中遇到 UTF-八 序列的字节 1 无效
  9. SOAP-XML请求(iOS应用下集成携程api)
  10. PagerHelper-分页类