Json解析要点
解析Json时,昨天遇到了新的问题,之前都是解析的数组,不是数组的用类来做。
这是Json串;
{"status":"00001","ver":"1.0","msg":"ok","result":{"init_id":"13","init_time":"2015-12-30 00:00:00","init_title":"\u7bee\u7403\u7ea6\u67b6","init_lati":"31.19","init_longti":"120.37","init_location":"\u82cf\u5dde","commit_init_users":[{"commits_id":"25","commit_images":{"pub_img":["Public\/dd\/201512\/22\/5678ad286dfb8.jpg"],"pub_th_img":["Public\/dd\/thumb\/antu_5678ad286dfb8.jpg"]},"user_id":"1234648","user_head_url":"Public\/tmp\/7004.jpg","commits_time":"2015-12-30 00:00:00","commits_comments":" \u77ed\u53d1\n","commits_flg":"0","count":1},{"commits_id":"26","commit_images":{"pub_img":["Public\/dd\/201512\/22\/5678ad30337d8.jpg"],"pub_th_img":["Public\/dd\/thumb\/antu_5678ad30337d8.jpg"]},"user_id":"1234649","user_head_url":"Public\/tmp\/7005.jpg","commits_time":"2015-12-20 00:00:00","commits_comments":"\u5404\u4f4d\n","commits_flg":"0","count":1},{"commits_id":"40","commit_images":{"pub_img":["Public\/dd\/201512\/22\/5678ac6ec7a53.jpg","Public\/dd\/201512\/22\/5678ac7535f56.jpg"],"pub_th_img":["Public\/dd\/thumb\/antu_5678ac6ec7a53.jpg","Public\/dd\/thumb\/antu_5678ac7535f56.jpg"]},"user_id":"1234648","user_head_url":"Public\/tmp\/7004.jpg","commits_time":"2015-12-30 00:00:00","commits_comments":"\u7bee\u7403\u7ea6\u67b6","commits_flg":"1","count":2}],"all_count":4}}
这是解析这条Json的JavaBean对象:
/**JavBean对象的父类
* Created by cyc on 16-1-4.
*/
public class Response_Header_Info {
@Expose
public String status;//状态
@Expose
public String ver;//版本
@Expose
public String msg;//是否OK public String getStatus() {
return status;
} public String getVer() {
return ver;
}
}
/**
* Square界面的Json对象
* Created by cyc on 16-1-4.
*/
public class Response_Square_Callup_Recommend_Info extends Response_Header_Info {
private static final String TAG = "Response_Square_Callup_Recommend_Info"; /**一条广场活动的信息总和*/
@Expose
public Squre_Activity_all result; /**
* 一条广场活动信息的总和
*/
public class Squre_Activity_all {
/**所有参与这个活动的用户集合*/
@Expose
public ArrayList<Init_users> commit_init_users; /**活动的图片总数*/
@Expose
public int image_count;
/**发起事件ID*/
@Expose
public int init_id;
/**事件的经度*/
@Expose
public float init_lati;
/**事件的地点*/
@Expose
public String init_location;
/**事件的纬度*/
@Expose
public float init_longti;
/**发起事件的时间*/
@Expose
public String init_time;
/**发起事件的标题*/
@Expose
public String init_title;
/**所有参与人和发起人发起图片的总和*/
@Expose
public int all_count; } /**
* 参与这个活动的用户类
*/
public class Init_users {
/**参与人的评论*/
@Expose
public String commits_comments;//字段仔细别写错
/**是否活动发起人*/
@Expose
public int commits_flg;
/**参与发起的ID*/
@Expose
public int commits_id;
/**参与发起的时间*/
@Expose
public String commits_time;
/**参与事件人的头像*/
@Expose
public String user_head_url;
/**用户的ID*/
@Expose
public int user_id;
/**发布图片的数量*/
@Expose
public int count; /**参与人发的所有图片的类*/
@Expose
public Img commit_images;
}
/**参与人发的图片(缩略图和大图)*/
public class Img{
/**大图集合*/
@Expose
public ArrayList<String> pub_img;
/**缩略图集合*/
@Expose
public ArrayList<String> pub_th_img;
}
}
根据这个Json串的解析,绝大多数的Json都是这样解析的,一定要小心字段别写错了,要点: { 开头的字段用类来描述 [ 开头的字段用集合来描述
Json解析要点的更多相关文章
- 高手教您编写简单的JSON解析器
编写JSON解析器是熟悉解析技术的最简单方法之一.格式非常简单.它是递归定义的,所以与解析Brainfuck相比,你会遇到轻微的挑战 ; 你可能已经使用JSON.除了最后一点之外,解析 Scheme的 ...
- 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在实际应用中给 ...
随机推荐
- angularJS 系列(七)---指令
----------------------------------------------------------------------------------- 原文:https://www.s ...
- Webdriver如何解决页面元素过期:org.openqa.selenium.StaleElementReferenceException: Element not found in the cache - perhaps the page has changed since it was looked up
当运行Webdriver时抛出如下异常:org.openqa.selenium.StaleElementReferenceException: Element not found in the cac ...
- js循环POST提交添加辅助单位
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- ReactiveCocoa常用方法
//1 代替kvo [[self.redView rac_valuesForKeyPath:@"frame" observer:nil] subscribeNext:^(id x) ...
- linux文件特殊属性介绍(s,s,t)
文件的权限有rwx这3个读.写.执行的权限.但是,怎么 /tmp权限有些奇怪?还有, /usr/bin/passwd也有些奇怪,怎么回事呢? [root@linux ~]# ls -ld /tmp ; ...
- 第10章 接口、继承与多态----Object类
在Java中,所有的类都直接或间接继承了java.lang.Object类.Object类是比较特殊的类,它是所有类的父类,是Java类层中的最高层类.当创建一个类时,总是在继承,除非某个类已经指定要 ...
- 关于table参数的一些问题
1.关于单元格合并 写在td标签上,如: <td rowspan="3"></td> 跨行合并:rowspan 跨列合并:colspan 2.关于多行输入框 ...
- 缩放系列(二):所有子控件也随着缩放、手势缩放、多点触控layout
下面是一个功能强大的改造的例子: 可以实现以下需求: 1.两个手指进行缩放布局 2.所有子控件也随着缩放, 3.子控件该有的功能不能丢失(像button有可被点击的功能,缩放后不能丢失该功能) 运行效 ...
- postfix队列管理
队列管理单元的服务器程序--qmgr,是整个postfix系统的中心枢纽.所有邮件,包括等待送出与从外界收进来的,都必须通过队列.了解队列的运行原理以及postfix如何处理队列,有助于你解决问题. ...
- UIView的基本属性及ANimation
frame属性:可以使用该属性改变尺寸和位置 相对于父视图bounds:改变尺寸 相对自身center:改变视图的位置alpha:改变视图的透明度backgroundColor:改变视图的背景cont ...