JSon解析
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解析的更多相关文章
- Android okHttp网络请求之Json解析
前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...
- Json解析工具的选择
前言 前段时间@寒江不钓同学针对国内Top500和Google Play Top200 Android应用做了全面的分析(具体分析报告见文末的参考资料),其中有涉及到对主流应用使用json框架Gson ...
- 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 ...
- Android之JSON解析
做个Android网络编程的同学一定对于JSON解析一点都不陌生,因为现在我们通过手机向服务器请求资源,服务器给我们返回的数据资源一般都是以JSON格式返回,当然还有一些通过XML格式返回,相对JSO ...
- Android总结之json解析(FastJson Gson 对比)
前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...
- JSON解析和XML解析对比
JSON解析和XML解析是较为普遍的两种解析方式,其中JSON解析的市场分额更大.本文系统的分析两种解析方式的区别,为更好地处理数据作准备.由于目前阶段主要是做移动开发,所以本文所描述的JSON解析和 ...
- iOS json解析的几种方法 NSJSONSerialization,JSONKit,SBJson ,TouchJson
相关的第三方类库大家可以去github上下载 1.NSJSONSerialization 具体代码如下 : - (void)viewDidLoad { [super viewDidLoad]; NSD ...
- Json解析工具Jackson(使用注解)
原文http://blog.csdn.net/nomousewch/article/details/8955796 接上一篇文章Json解析工具Jackson(简单应用),jackson在实际应用中给 ...
- Json解析工具Jackson(简单应用)
原文http://blog.csdn.net/nomousewch/article/details/8955796 概述 Jackson库(http://jackson.codehaus.org),是 ...
- Tomjson - 一个"短小精悍"的 json 解析库
Tomjson,一个"短小精悍"的 json 解析库,tomjson使用Java语言编写,主要作用是把Java对象(JavaBean)序列化为json格式字符串,将json格式字符 ...
随机推荐
- QDialog QMainwindow QWidget QFrame不同时候用法.
继承关系:在Qt中所有的类都有一个共同的基类QObject ,QWidget直接继承与QPaintDevice类,QDialog.QMainWindow.QFrame直接继承QWidget 类. ...
- CSS布局
1流动模型 先来说一说流动模型,流动(Flow)是默认的网页布局模式.也就是说网页在默认状态下的 HTML 网页元素都是根据流动模型来分布网页内容的. 流动布局模型具有2个比较典型的特征: 第一点,块 ...
- Docker安装CentOS
系统环境: 腾讯云公共镜像 CoreOS 7.1 X64 #docker 下载centos镜像docker pull centos #下载centos所有的镜像docker pull ...
- Lintcode答案&笔记
1.A+B问题 给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符 思路:作异或得到未进位和,作与并向左移1位得到进位,随后再重复操作俩结果,直到进位为0,适合用递归 public in ...
- FFmpeg 转码和截屏
转码 (flv转码为MP4,libx264是MP4编码格式 , -b 3000k是码率,比特率) ffmpeg -i /home/ghr/mp4/mp4.flv -vcodec libx264 -b ...
- 篇二:JSON解析
前台以json形式的数据格式传到后台,代码如下: import net.sf.json.JSONObject; public class JsonUtility { /** * 解析JSON 对象为对 ...
- HTML之form表单和input系列
<form method="POST" action="/host"> <input class="c1" type=&q ...
- 常用jQuery 方法
//强制给数字补全小数点 function toDecimal2(x) { var f = parseFloat(x); if(isNaN(f)) { return false; } var f = ...
- 菜鸟git学习
基础知识: 安装github之后,所有的命令在git shell 中输入. E:\文档\GitHub [master +2 ~0 -0 !]> cd [ToDoList]E:\文档\GitHub ...
- BZOJ 2815: [ZJOI2012]灾难
呃,题面没了,大概就是给出一些生物之间的捕食关系,求灭绝树每个点的灾难值. 拓扑排序之后倒着加入点,动态维护fa[][]数组,倍增法求LCA,当然大佬愿意写动态树也是极好的…… #include &l ...