Jackson 解析json数据之忽略解析字段注解@JsonIgnoreProperties
转自:http://blog.csdn.net/ngl272/article/details/70217104
以前解析json用的惯的就是Google的gson了,用惯了基本就用它了,一直也没发现什么大问题,因为都是解析简单的json数据。但是最近学习springboot,要解析一个比较复杂的json数据。就照之前的用gsonformat自动生成实体类,让gson直接解析,本想着一切ok了,可是确报错了,刚开始以为gsonformat生成的类有错误,因为毕竟json数据较为复杂,于是多生成几次,可是还是不行。面对这样复杂的数据,我可不想手动写实体类,于是想着又换了自动生成实体类的工具,可是结果还是未能如愿。于是想着能从错误的日志中发现点什么,可是无奈gson没有打印具体的出错的地方,后来捣鼓了好久,想着不如换个解析工具吧。于是上网找了找,觉得Jackson不错,赶紧试用,发现还真不错,虽然也没能解析成功,但是它打印出了详细的出错信息,照着出错的信息改了马上就解析成功了。
说说出错的原因:平时解析json呢基本接口提供的json都是很明确的,所以用gson解析一般不会有啥大问题。但是此次情况不同,接口的数据我无法完全的预知,所以实体类字段有可能不完整。所以当返回的json数据里包含了实体类没有的字段时gson就有可能出错,但是对于这种情况用gson解析我是没找到相应的解决办法,如果谁知道麻烦告知一下,谢谢。
当然用Jackson解决就非常容易了,只需要在实体类上加上注解就可以。
@JsonIgnoreProperties(ignoreUnknown = true)
class ExtraBean {
private boolean is_museuser;
public boolean isIs_museuser() {
return is_museuser;
}
public void setIs_museuser(boolean is_museuser) {
this.is_museuser = is_museuser;
}
}
@JsonIgnore注解用来忽略某些字段,可以用在Field或者Getter方法上,用在Setter方法时,和Filed效果一样。这个注解只能用在POJO存在的字段要忽略的情况,不能满足现在需要的情况。
@JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段,可以满足当前的需要。这个注解还可以指定要忽略的字段。使用方法如下:
@JsonIgnoreProperties({ "internalId", "secretKey" })
指定的字段不会被序列化和反序列化。
到此顺利解决。(还有Gson有类似的实现请告知一下,本人只知道gson转string忽略字段的方法,谢谢)
参考:
http://blog.csdn.net/isea533/article/details/33397735
http://www.cnblogs.com/dupang/p/5673097.html
相关文章
- Dapper操作MySQL数据库获取JSON数据中文乱码
- 爬虫 Http请求,urllib2获取数据,第三方库requests获取数据,BeautifulSoup处理数据,使用Chrome浏览器开发者工具显示检查网页源代码,json模块的dumps,loads,dump,load方法介绍
- 修复发生“由于数据移动,未能继续以 NOLOCK 方式扫描”错误的数据库
- c#.net帮助类-数据类型转换 DataTable,DataRow,json
- js遍历PHP的json数据
- iOS key value coding kvc在接收json数据与 model封装中的使用
- Google Earth Engine ——基于MODIS数据集JRC/GWIS/GlobFire/v2/DailyPerimetersMCD64A1的火灾边界数据集
- Google Earth Engine ——2001-2017年使用坡度、化学和物理土壤特性得出的土壤肥力能力分类,预测平均值和标准偏差数据集
- TensorFlow TFRecord封装不定长的序列数据(文本)
- 《Python数据科学实践指南》一2.4 流程控制
- QT中Json的使用方法(类和json字符串相互转换的方法)
- Python 数据提取概要
- 【Json】在线JSON转MySQL建表语句工具
- 将你的数据导入到json格式
- 《机器学习与数据科学(基于R的统计学习方法)》——1.7 RStudio
- 基于Python面向《海贼王》领域数据的知识图谱项目【100010385】
- (在模仿中精进数据可视化01) 全国38城居住自由指数可视化
- 返回json格式的数据
- 大数据架构(一)背景和概念
- Spring MVC 之返回数据(静态页面、非静态页面、JSON对象、请求转发与请求重定向)
- Spring MVC 之获取参数(对象、JSON格式数据、URL地址参数、文件、Cookie)
- Json数据的序列化与反序列化的三种经常用法介绍
- Django:将后台返回的数据填充到select下拉框中
- 贵州大数据产业异军突起
- 使用base64 对Json 的返回数据进行优化
- 【.net 深呼吸】聊聊WCF服务返回XML或JSON格式数据
- JSON和GSON操作json数据
- 手把手教你开发Chrome扩展三:关于本地存储数据
- 随手借,年轻人值得拥有的大数据金融借贷应用