FastJSON使用笔记
虽然使用FastJSON来生成JSON数据非常简单
最常用的的方法就是JSON.toJSONString()静态方法,这个方法参数可以给一个String,也可以是一个int,也可以给一个Object类型(包括集合数组),也可以是一个JavaBean 等等,说明其存在多个重载方法
Admin admin2=adminService.findByName(admin.getAdminName()); String json = JSON.toJSONString(admin2);
ServletActionContext.getResponse().setContentType("application/json;charset=utf-8");
ServletActionContext.getResponse().getWriter().write(json); return NONE;
但是我在实际使用过程中还是发现了一些值得注意的地方,比如说:之前写过的JQuery解析FastJSON生成的JSON数据会出现的错误
今天我要记录下一些注意点
将对象转化为json字符串时,如何过滤掉部分字段?
方法一:
在JavaBean对象对应字段前加注解,这样生成的json也不包含该字段
@JSONField(serialize=false)
private String userName;
方法二:
在需要生成JSON的时候使用fastjson的过滤器
PropertyFilter profilter = new PropertyFilter(){ @Override
public boolean apply(Object object, String name, Object value) {
if(name.equalsIgnoreCase("age")){
//false表示age字段将被排除在外
return false;
}
return true;
} };
json = JSON.toJSONString(user, profilter);
System.out.println(json);
我个人推荐使用第二种,虽然代码多了些,但是如果出现该字段有需要不进行过滤的情况,就不太灵活了
格式化日期时间
再将数据库中的日期时间生成JSON的时候,可能会出现以毫秒或者是格式不一致的问题,应该如何指定使用的日期时间格式?就要使用@JSONField注解中的format属性了
还是在JavaBean的日期时间字段使用注解
//通过注解对日期转化为JSON进行格式化
@JSONField (format="yyyy-MM-dd HH:mm:ss")
private Date date;
解析JSON
fastJSON也可以将JSON解析为所对应的JavaBean,使用的是JSON类的parseObject静态方法。
我在src下放入一段JSON数据:
{
"userName":"lz",
"password":"321",
"birthday":"2017-07-29 13:50:22",
"jineng":[
"Struts2","springMVC"
]
}
并写好对应的JavaBean,在JavaBean中jineng属性使用的List集合
测试的方法:
@Test
public void fun4() throws Exception{
String path = MyTest.class.getResource("/test.json").getFile();
File file=new File(path);
String json = FileUtils.readFileToString(file);
User user=JSON.parseObject(json, User.class); System.out.println(user.getJineng());
System.out.println(user.getJineng().getClass()); }
输出结果:
[Struts2, springMVC]
class java.util.ArrayList
最终fastJSON将数据封装到JavaBean中,同时也完成了对集合属性的具体化
FastJSON使用笔记的更多相关文章
- Json,Gson,FastJson解析笔记
Json,Gson,FastJson解析笔记 1.将JavaBean转换成Json对象: public static String CreatJsonFromObject(Object key,Obj ...
- fastjson学习笔记
先来说说什么是 JSON 吧. JSON:JavaScript对象表示法(JavaScript Object Notation).JSON 是存储和交换文本信息的语法.JSON 语法是 JavaScr ...
- fastjson 使用笔记
1.string转json String params={'key1':'50001','key2':10007700'}Map<String, String> a = JSON.pars ...
- Spring MVC-学习笔记(3)参数绑定注解、HttpMessageConverter<T>信息转换、jackson、fastjson、XML
1.参数绑定注解 1>@RequestParam: 用于将指定的请求参数赋值给方法中的指定参数.支持的属性: 2>@PathVariable:可以方便的获得URL中的动态参数,只支持一个属 ...
- FastJson远程命令执行漏洞学习笔记
FastJson远程命令执行漏洞学习笔记 Fastjson简介 fastjson用于将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean.fastjson.ja ...
- Android进阶笔记17:3种JSON解析工具(org.json、fastjson、gson)
一. 目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),其中解析速度最快的是Gson. 3种json工具下 ...
- SpringBoot入门笔记(二)、使用fastjson
1.添加fastjson配置 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastj ...
- SpringBoot笔记--FastJson
FastJson配置 ObjectId class ObjectIdSerializer : ObjectSerializer { override fun write(serializer: JSO ...
- fastjson 反序列化漏洞笔记,比较乱
现在思路还是有点乱,希望后面能重新写 先上pon.xml 包 <?xml version="1.0" encoding="UTF-8"?> < ...
随机推荐
- Java虚拟机访问读写其他进程的数据--RandomAccessFile
RandomAccessFile 是Java输入/输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出数据.并且它支持“任意访问”的方式,程 ...
- C++里的单体类实现
单件模式是设计模式中最简单的模式了. 定义: 确保一个类只有一个实例,并提供一个全局的访问点. 把一个类设计成自己管理的一个单独实例,同时避免其他类再自行生成实例(所以构造函数用protect或pri ...
- IOS开发 Application Kit框架的线程安全
以下部分介绍了Application Kit框架的线程安全. 非线程安全类 以下这些类和函数通常是非线程安全的.大部分情况下,你可以在任何线程使用这些类,只要你在同一时间只有一个线程使用它们.查看这些 ...
- matlab 破解教程密钥
http://wenku.baidu.com/link?url=YW1f0XP1VRcOq8YtwsIv-m0vMS3YuFwY7H617koFr9zM6I86P-KpCRo1tDewI81eBiXR ...
- php simple_html_dom
这个真的很好用,如果用正则,就太麻烦了. 首先,下载simple_html_dom,用include_once就可以使用了. 可以直接定位,可以像个对象一样操作,很方便. $ret=file_get_ ...
- HDU2222 Keywords Search ac自动机第一题
指针我一般都会出错,所以还是自己写数组版本. In the modern time, Search engine came into the life of everybody like Google ...
- flask第七篇——URL与视图函数的映射
有兴趣的朋友可以添加微信公众号:自动化测试实战 今天开始就要进入正题了.大家都准备好了吧~ 代码提示 先和大家说个小知识点:有同学后台说输入flask代码pycharm不提示,现在告诉你一个解决方法: ...
- Django的MultipleChoiceField处理小技巧
1.如果遇到多选择的,在收到数据时一般需要做处理 tag_id = fields.MultipleChoiceField( choices=[], widget=widgets.CheckboxSel ...
- 关于fflush、缓冲区、scanf、EOF等问题真麻烦
1.为什么 fflush(stdin)是错的 http://u637.springnote.com/pages/6288463.xhtml(已经bad request了) 首先请看以下程序: #inc ...
- JS脚本不能运行
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/moqiang02/article/details/25898295 这段时间在做前端的动态页面,出了 ...