fastjson之annotation.JSONField
2017-03-13 15:21
260 查看
@JSONField注释的第一个用处:序列化时定制序列化
定义实体类
测试结果
字段latitude没能序列化
字段longitude序列化后,key值变成了“smx”
@JSONField注释的第二个用处:类关联时,主类和从类中必须有一个添加该注释,要不然会循环引用,造成栈溢出
定义类DestinationPoint
定义类CollectLine
如果DestinationPoint类中定义字段collectlines 没有用注解,类CollectLine类中定义字段destination也没有用注解,会跑出异常如下:
定义实体类
import com.alibaba.fastjson.annotation.JSONField; public class DestinationPoint{ private String name;// 名称 private Float altitude;// 纬度 /**点1:序列化时该字段序列化后key值为smx*/ @JSONField(name = "smx") private Float longitude;// 经度 /**点2:该字段不允许被序列化*/ @JSONField(serialize = false) private Float latitude;// 海拔 //添加getter,setter方法,必须有get方法才能被序列化 }
import com.alibaba.fastjson.JSONObject; public static void main(String[] args) { // 第一步:新建一个Destination对象 DestinationPoint destination = new DestinationPoint(); destination.setName("sss"); destination.setAltitude((float) 11); destination.setLatitude((float) 11); destination.setLongitude((float) 99); /** 第二步:默认序列化和反序列化 */ // 序列化:对象的所有非空字段转为json字符串 String desJson = JSONObject.toJSONString(destination); System.out.println(desJson); }
测试结果
字段latitude没能序列化
字段longitude序列化后,key值变成了“smx”
@JSONField注释的第二个用处:类关联时,主类和从类中必须有一个添加该注释,要不然会循环引用,造成栈溢出
定义类DestinationPoint
public class DestinationPoint { @Column(name = "name", length = 50) private String name;// 名称 @JSONField(serialize = false) @OneToMany(cascade = { CascadeType.REFRESH, CascadeType.MERGE }, mappedBy = "destination", fetch = FetchType.LAZY) private Set<CollectLine> collectlines = new HashSet<CollectLine>();// 目的地对线路,是一对多
定义类CollectLine
public class CollectLine extends BaseEntity<Long> { @Column(name = "name", length = 100) private String name;// 名称 @ManyToOne(cascade = { CascadeType.MERGE, CascadeType.REFRESH }, fetch = FetchType.EAGER) @JoinColumn(name = "destination_point_id") private DestinationPoint destination;// 目的地点
如果DestinationPoint类中定义字段collectlines 没有用注解,类CollectLine类中定义字段destination也没有用注解,会跑出异常如下:
相关文章推荐
- fastjson:javabean按字段(field)序列化存储为Map并反序列化
- 关于fastJSON的@JSONField
- FastJson中@JSONField注解使用
- fastjson的@JSONField注解
- fastjson:javabean按字段(field)序列化存储为Map并反序列化改进
- fastjson使用@JSONField、@JSONType、SerializeFilter定制序列化
- fastjson使用 -- @JSONField使用
- Fastjon JSONField 注解 常见用法
- fastjson @JSONField
- FastJson中@JSONField注解使用
- FastJson中@JSONField注解使用
- fastjson的@JSONField注解的一点问题
- fastjson使用(五) -- @JSONField使用
- FastJsonHttpMessageConverter设置dateFormat后导致JSONField注解format失效解决办法
- 关于FastJSON的@JSONField属性,怎么判null空处理,serialzeFeatures属性
- fastjson @JSONField自定义输出字段
- fastjson @JSONField自定义输出字段
- 关于fastjson的@JSONField注解的一些问题(详解)
- FastJson中@JSONField注解使用
- Java fastjson 解析json配置文件