1.解析总是犯糊涂

在图中,[]  中括号表示是jsonarray,{} 小括号 表示对象  这个解析可以写成:

   JSONArray array=new JSONArray(result);
for(int i=0;i<array.length();i++){
JSONObject object=array.getJSONObject(i);
String id=object.optString("id");
String name=object.optString("name");
String deviceId=object.optString("deviceId");
String status=object.optString("status");
String lat=object.optString("lat");
String lng=object.optString("lng");
String antN=object.optString("antN");
String gsmN=object.optString("gsmN");
String gsmB=object.optString("gsmB");
String tdN=object.optString("tdN");
String tdB=object.optString("tdB");
String lteN=object.optString("lteN");
String lteB=object.optString("lteB"); }

2.

   JSONObject jsonObject=new JSONObject(s);
JSONArray jsonArray=jsonObject.getJSONArray("rows");
for(int i=0;i<jsonArray.length();i++){
JSONObject jsonObject1=jsonArray.getJSONObject(i);
String id=jsonObject1.getString("id"); ..... }

3.由于某些字段的缺失, jsonObject.getString("key")会导致解析失败,这时获取字段value可以用  jsonObject.optString("key")。即使没有该字段,解析容错,扔可以通过。

4.

如图上面的第一个箭头: 集合下面直接是字符串,仍然可按照是对象方法解析,然后转成字符串。

             JSONObject  obj=new JSONObject(s);
JSONObject obj1=obj.optJSONObject("result");
JSONObject obj2=obj1.optJSONObject("data");
JSONObject obj3=obj2.optJSONObject("life");
JSONObject obj4=obj3.optJSONObject("info");
JSONArray array=obj4.optJSONArray("chuanyi");
String s_1=array.optString(0).toString();
String s_2=array.optString(1).toString();

5.

实体类可写成:

public class Root {

    private Info info;

    public void setInfo(Info info) {
this.info = info;
} public Info getInfo() {
return this.info;
} /**
* info
*/
public class Info {
private List<String> chuanyi; public void setString(List<String> chuanyi) {
this.chuanyi = chuanyi;
}
public List<String> getString(){
return this.chuanyi;
} }
}

ss为数据字符串  解析为:

        Gson gson=new Gson();
Root root=gson.fromJson(ss,Root.class);
Root.Info info=root.getInfo();
List<String> data=info.getString();
for(int i=0;i<data.size();i++){
Log.d(TAG, "GSON: "+data.get(i).toString()); }

 6.GSon使用

图上的 code,list,obj,msg;必须要在实体类中对应。其obj的对象名无所谓,List集合中的对象名称无所谓。

JSon解析的更多相关文章

  1. Android okHttp网络请求之Json解析

    前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...

  2. Json解析工具的选择

    前言 前段时间@寒江不钓同学针对国内Top500和Google Play Top200 Android应用做了全面的分析(具体分析报告见文末的参考资料),其中有涉及到对主流应用使用json框架Gson ...

  3. iOS json 解析遇到error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed.

    Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 38 ...

  4. Android之JSON解析

    做个Android网络编程的同学一定对于JSON解析一点都不陌生,因为现在我们通过手机向服务器请求资源,服务器给我们返回的数据资源一般都是以JSON格式返回,当然还有一些通过XML格式返回,相对JSO ...

  5. Android总结之json解析(FastJson Gson 对比)

    前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...

  6. JSON解析和XML解析对比

    JSON解析和XML解析是较为普遍的两种解析方式,其中JSON解析的市场分额更大.本文系统的分析两种解析方式的区别,为更好地处理数据作准备.由于目前阶段主要是做移动开发,所以本文所描述的JSON解析和 ...

  7. iOS json解析的几种方法 NSJSONSerialization,JSONKit,SBJson ,TouchJson

    相关的第三方类库大家可以去github上下载 1.NSJSONSerialization 具体代码如下 : - (void)viewDidLoad { [super viewDidLoad]; NSD ...

  8. Json解析工具Jackson(使用注解)

    原文http://blog.csdn.net/nomousewch/article/details/8955796 接上一篇文章Json解析工具Jackson(简单应用),jackson在实际应用中给 ...

  9. Json解析工具Jackson(简单应用)

    原文http://blog.csdn.net/nomousewch/article/details/8955796 概述 Jackson库(http://jackson.codehaus.org),是 ...

  10. Tomjson - 一个"短小精悍"的 json 解析库

    Tomjson,一个"短小精悍"的 json 解析库,tomjson使用Java语言编写,主要作用是把Java对象(JavaBean)序列化为json格式字符串,将json格式字符 ...

随机推荐

  1. hihocoder -1121-二分图的判定

    hihocoder -1121-二分图的判定 1121 : 二分图一•二分图判定 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 大家好,我是小Hi和小Ho的小伙伴Net ...

  2. Extjs 下拉框显示远程数据

    var store = new HT.SyncStore({ baseParams : { itemName : '绩效考核_任务状态' }, url : __ctxPath + '/system/l ...

  3. Visual Studio 使用Web Deploy 3.6发布项目

    工具:Web Deploy 3.6 点击下载 (强烈推荐使用独立的Web Deploy 安装包安装) 配置: 1.安装web deploy,安装好之后,点击IIS根目录,此处应有如下图标 另外,需要注 ...

  4. MySQL种种

    mysql中You can't specify target table for update in FROM clause错误--http://blog.csdn.net/priestmoon/ar ...

  5. ssh key生成

    Mac电脑用终端生成SSH key 访问自己的Github 字数684 阅读427 评论4 喜欢15 前言:最近有不少刚刚使用github管理代码的开发者或者新手码农在网上 问我如何关联自己的gith ...

  6. word中表格加粗某一行

    选中表格后选择线条粗细. 然后重新绘制一遍就行了.

  7. 微信学习总结 02 ngrok 部署本机代码,使外网可以访问

    一 什么是ngrok ngrok is a reverse proxy that creates a secure tunnel from a public endpoint to a locally ...

  8. windows多线程编程实现 简单(1)

    内容:实现win32下的最基本多线程编程 使用函数: #CreateThread# 创建线程 HANDLE WINAPI CreateThread( LPSECURITY_ATTRIBUTES lpT ...

  9. 【原】聊一聊 url 编码问题

    最近项目中遇到需要编码的一个问题,在encode和encodeURIComponent上绕了个小圈,所以打算总结一下js的编码问题,网上也有很多类似的文章,不过呢,总结出来的东西才是自己滴 为什么需要 ...

  10. linux下mnt目录作用

    linux下mnt目录作用 一.mount 英文解释 登上; 爬上; 攀登; 骑上; 乘上; 跨上 可直接理解为“挂载” 挂接光驱.USB设备的目录,加载后,会在mnt里多出相应设备的目录.mnt是m ...