博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里巴巴fastjson @JSONField 注解说明
阅读量:6921 次
发布时间:2019-06-27

本文共 1864 字,大约阅读时间需要 6 分钟。

阿里巴巴fastjson @JSONField 注解说明

1 介绍

1.1 依赖

​ com.alibaba ​ fastjson ​ 1.2.47

1.2 @jsonField注解

@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})public @interface JSONField {    int ordinal() default 0;    String name() default "";    String format() default "";    boolean serialize() default true;    boolean deserialize() default true; 	//其他省略}复制代码

1.3 @jsonField注解常用属性

name : 给字段起别名

ordinal :用来排序 输出json字符串中key属性的先后顺序 可以用 @JSONType (orders={})来代替

format : 用来日期格式化

serialize :指定字段不序列化

deserialize :指定字段不序列化

2 示例

2.1 User类

public class User {String a;String b;String c;String d;String z;//get  set 省略}复制代码

2.2 json字符串中字段先后顺序排序

我们来输出一下

User  user =new User();user.setA("a");user.setB("b");user.setC("c");user.setD("d");user.setZ("e");System.out.println(JSON.toJSONString(user));复制代码

结果:

{
"a":"a","b":"b","c":"c","d":"d","z":"e"}复制代码

我们现在想要这样子的格式:z,a,b,c,d,e

此时采用注解

public class User {@JSONField(ordinal = 1)String a;@JSONField(ordinal = 2)String b;@JSONField(ordinal = 3)String c;@JSONField(ordinal = 4)String d;@JSONField(ordinal = 0)    // 默认是0  可以不加String z;//get  set 省略}复制代码

输出

{
"z":"e","a":"a","b":"b","c":"c","d":"d"}复制代码

或者我们可以采用另一个注解 注解在类上面 @JSONType(orders = {"z","a","b","c","d"})

@JSONType(orders = {
"z","a","b","c","d"})public class User {//省略}复制代码

2.3 format 和 name 一起使用

新增字段 Date 字段 ,然后 格式化,顺便给字段 z 起别名 z_name

@JSONField(ordinal = 2)    String a;    @JSONField(ordinal = 3)    String b;    @JSONField(ordinal = 4)    String c;    @JSONField(ordinal = 5)    String d;    @JSONField(ordinal = 1 , name = "z_name")    String z;    @JSONField(ordinal = 0 ,format = "yyyy-MM-dd")    Date z_date = new Date();	//get set 省略复制代码

输出

{
"z_date":"2018-12-20","z_name":"e","a":"a","b":"b","c":"c","d":"d"}复制代码

serialize

public class A {      @JSONField(serialize=false)      public Date date; }复制代码

转载地址:http://pircl.baihongyu.com/

你可能感兴趣的文章
bzoj 1221: [HNOI2001] 软件开发
查看>>
树莓派2B 安装小米wifi驱动
查看>>
WLS_Oracle Weblogic管理概述(概念)
查看>>
JPush API client library for C Sharp(极光推送API)
查看>>
CocoaPods 2 详解之----使用篇
查看>>
php乱码问题
查看>>
冒泡排序
查看>>
javaScript的DOM操作
查看>>
css3效果、js效果合集
查看>>
【可靠性】安规和EMC
查看>>
2014年亚洲赛区西安站赛后反思
查看>>
从图像转换到byte[]数组的几种方法
查看>>
nagios检控硬盘健康状态
查看>>
English Metric Units and Open XML
查看>>
gulp教程之gulp-less
查看>>
C#高级编程第9版 第二章 核心C# 读后笔记
查看>>
NSURLConnection 大文件下载
查看>>
2011年-CUshell编程大赛
查看>>
模式设计
查看>>
print打印页生成及排版样式更改的技巧
查看>>