fastjson @JSONType 使用
**********************
相关注解
@JSONType:标注在类上
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE })
public @interface JSONType {
String[] orders() default {}; //字段序列化顺序
String[] includes() default {}; //包含的序列化字段
String[] ignores() default {}; //不包含的序列化字段
Class<?> serializer() default Void.class; //自定义序列化类
Class<?> deserializer() default Void.class; //自定义反序列化类
Class<? extends SerializeFilter>[] serialzeFilters() default {};
SerializerFeature[] serialzeFeatures() default {};
Feature[] parseFeatures() default {};
boolean asm() default true;
boolean alphabetic() default true;
boolean serializeEnumAsJavaBean() default false;
String typeName() default "";
String typeKey() default "";
Class<?>[] seeAlso() default{};
Class<?> mappingTo() default Void.class;
Class<?> builder() default Void.class;
PropertyNamingStrategy naming() default PropertyNamingStrategy.CamelCase;
Class<? extends ParserConfig.AutoTypeCheckHandler> autoTypeCheckHandler() default ParserConfig.AutoTypeCheckHandler.class;
}
**********************
示例
@Data
@JSONType(orders = {"amount","price","productId","productName"})
class Product{
private String productId;
private String productName;
private Double price;
private Integer amount;
}
public class Test4 {
public static void main(String[] args){
Product product=new Product();
product.setProductId("2");
product.setProductName("apple");
product.setPrice(4d);
product.setAmount(10);
System.out.println(product);
System.out.println(JSON.toJSONString(product));
}
}
*****************
控制台输出
Product(productId=2, productName=apple, price=4.0, amount=10)
{"amount":10,"price":4.0,"productId":"2","productName":"apple"}
序列化字符串按照指定顺序输出