虽然使用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使用笔记的更多相关文章

  1. Json,Gson,FastJson解析笔记

    Json,Gson,FastJson解析笔记 1.将JavaBean转换成Json对象: public static String CreatJsonFromObject(Object key,Obj ...

  2. fastjson学习笔记

    先来说说什么是 JSON 吧. JSON:JavaScript对象表示法(JavaScript Object Notation).JSON 是存储和交换文本信息的语法.JSON 语法是 JavaScr ...

  3. fastjson 使用笔记

    1.string转json String params={'key1':'50001','key2':10007700'}Map<String, String> a = JSON.pars ...

  4. Spring MVC-学习笔记(3)参数绑定注解、HttpMessageConverter<T>信息转换、jackson、fastjson、XML

    1.参数绑定注解 1>@RequestParam: 用于将指定的请求参数赋值给方法中的指定参数.支持的属性: 2>@PathVariable:可以方便的获得URL中的动态参数,只支持一个属 ...

  5. FastJson远程命令执行漏洞学习笔记

    FastJson远程命令执行漏洞学习笔记 Fastjson简介 fastjson用于将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean.fastjson.ja ...

  6. Android进阶笔记17:3种JSON解析工具(org.json、fastjson、gson)

    一. 目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),其中解析速度最快的是Gson. 3种json工具下 ...

  7. SpringBoot入门笔记(二)、使用fastjson

    1.添加fastjson配置 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastj ...

  8. SpringBoot笔记--FastJson

    FastJson配置 ObjectId class ObjectIdSerializer : ObjectSerializer { override fun write(serializer: JSO ...

  9. fastjson 反序列化漏洞笔记,比较乱

    现在思路还是有点乱,希望后面能重新写 先上pon.xml 包 <?xml version="1.0" encoding="UTF-8"?> < ...

随机推荐

  1. PostgreSQL逻辑复制使用记录

    之前逻辑复制刚刚出来的时候就使用过,但是没有进行整理,这次一个项目需要逻辑复制的自动迁移,再次拾起逻辑复制. 在此之前有两个疑问: 1)同一个表,既有流复制,又有逻辑复制,这样数据会有两份吗? --不 ...

  2. .net的.aspx页面调试方法

    做.net网站开发,有时候需要调试和察看变量, 1.设置好断点以后, 2.设置调试:VS 菜单: 调试————〉附加到进程————〉在 “可用进程” 列表中选择 标题为 "ASP.NET D ...

  3. Slice Header中的field_pic_flag的含义?

    编码模式指帧编码.场编码.帧场自适应编码.当这个句法元素取值为1时属于场编码:0为非场编码. 序列参数集中的句法元素frame_mbs_only_flag和mb_adaptive_frame_fiel ...

  4. tableView 三级展开 嵌入collocationView

    目前有个需求,需要在写一个文件夹结构的类型,tableView分类显示 collocationView 遇到的问题是:tableView cell中嵌套了 collocationView 后,coll ...

  5. Compass入门

    一.Compass是什么?   简单说,Compass是Sass的工具库(toolkit). Sass本身只是一个编译器,Compass在它的基础上,封装了一系列有用的模块和模板,补充Sass的功能. ...

  6. 【javascript】利用jquery ajaxPrefilter防止ajax重复提交

    利用jquery ajaxPrefilter中断请求 var pendingRequests = {}; $.ajaxPrefilter(function( options, originalOpti ...

  7. selenium-java,定位并操作frame和iframe内的元素

    因为frame和iframe的原因,在frame里的元素不能直接定位需要切到相应的frame才可以对元素进行操作,下面是涉及的方法 webDriver.switchTo().defaultConten ...

  8. BZOJ1208 HNOI2004 宠物收养所 【非旋转Treap】

    BZOJ1208 HNOI2004 宠物收养所 Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望领养到自己满意的 ...

  9. XML 的 XPath 语法

    XPath 是 XML 路径语言(XML Path Language),用来确定XML文档中某部分位置的语言.无论是什么语言什么框架,几乎都可以使用 XPath 来高效查询 XML 文件. 本文将介绍 ...

  10. Ubuntu 忘记密码后重置密码

    摘自百度贴吧:http://tieba.baidu.com/p/2869755075 选后会再出现一个选单,让你选取,请选取:root - Drop to root shell prompt 选完后, ...