1.简单的Object转Json
Student student = new Student(1,"zangsan",15,1);
System.out.println(JSON.toJSONString(student));
2.指定序列化字段(只有id和name会被序列化)
Student student = new Student(1, "zangsan", 15, 1);
SimplePropertyPreFilter sppf = new SimplePropertyPreFilter(Student.class, "id", "name");
System.out.println(JSON.toJSONString(student, sppf));
3.SerializerFeature释义
QuoteFieldNames———-输出key时是否使用双引号,默认为true
WriteMapNullValue——–是否输出值为null的字段,默认为false
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null
4.使用SerializeFilter定制序列化:
通过SerializeFilter可以使用扩展编程的方式实现定制序列化。fastjson提供了多种SerializeFilter:
PropertyPreFilter: 根据PropertyName判断是否序列化;
PropertyFilter: 根据PropertyName和PropertyValue来判断是否序列化;
NameFilter: 修改Key,如果需要修改Key,process返回值则可;
ValueFilter: 修改Value;
BeforeFilter: 序列化时在最前添加内容;
AfterFilter: 序列化时在最后添加内容;
以上的SerializeFilter在JSON.toJSONString中可以使用。
5.日期格式化
1>
@JSONField (format="yyyy-MM-dd HH:mm:ss")
public Date birthday;
2>
JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";String str = JSON.toJSONString(user,SerializerFeature.WriteDateUseDateFormat);