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. 归一化方法 Normalization Method

    1. 概要 数据预处理在众多深度学习算法中都起着重要作用,实际情况中,将数据做归一化和白化处理后,很多算法能够发挥最佳效果.然而除非对这些算法有丰富的使用经验,否则预处理的精确参数并非显而易见. 2. ...

  2. 【WPF】WPF 布局

    1.window 类继承自 ContentControl 所以内部只能有一个元素2.遵循原则:            不应显示的设置元素(控件)尺寸,可以通过设置最大最小尺寸来限制大小         ...

  3. Java连接远程Redis

    redis-server &  //后台启动redis redis-cli //使用redis   打开redis.conf文件在NETWORK部分有说明   /usr/local/src   ...

  4. asp.net mvc4 简单的服务器监控开发之C#获取服务器CPU、RAM、TCP等系统信息(上)

    一.背景 前段时间服务器出了点问题,加上学业愈来愈紧张,写博文分享的时间越来越少.虽然不是第一次在博客园上写经验,但是近期分享的博文得到了不少的朋友支持和指正,在这里内心非常感激和开心.希望以后能认真 ...

  5. 通俗理解Android事件分发与消费机制

    深入:Android Touch事件传递机制全面解析(从WMS到View树) 通俗理解Android事件分发与消费机制 说起Android滑动冲突,是个很常见的场景,比如SliddingMenu与Li ...

  6. HTML学习笔记——标签(二)

    标签十二:<ul>标签 语义:是没有前后顺序的信息列表 语法: <ul> <li>信息</li> <li>信息</li> ... ...

  7. 我用ANDROID STUDIO开发,页面上总包这个警告,很烦!网上说是sdk版本问题,但是我是基于25开发的,最小版本也是19,有没有老司机啊?3克油

  8. ajax的简单介绍

    响应主体,就是服务器给我们返回的结果内容(浏览器里的responsive) 请求主体,是我们给服务器的数据 输入域名发起一次请求,得到的可能是标签,标签可能还要在发一次请求 post怎么发请求:for ...

  9. Java防止SQL注入2(通过filter过滤器功能进行拦截)

    首先说明一点,这个过滤器拦截其实是不靠谱的,比如说我的一篇文章是介绍sql注入的,或者评论的内容是有关sql的,那会过滤掉:且如果每个页面都经过这个过滤器,那么效率也是非常低的. 如果是要SQL注入拦 ...

  10. IDEA中maven搭建Spring+SpringMVC+mybatis项目

    一.介绍 使用IDEA搭建maven web项目,整合框架Spring+SpringMVC+mybatis 项目结构图: