一、json框架
市面上的json框架常用的有 jackson、gson、fastjson。大家比較推崇的是fastjson,但是springmvc默認集成的是 jackson。
在一個項目中建議一個項目只是用一種 json 框架。
二、json使用場景
1、mvc
http傳輸的body雖然是json格式的,但實際還是以串字符串。我們使用對象接收需要進行json轉換。同樣,返回給瀏覽器時在解析成字json格式的符串。
springmvc 支持多種 json框架,默認jsckson,想要修改jackson。
step1、排除 jackson
step2、引入 fastjson
step3、重寫 MappingJackson2HttpMessageConverter,HttpMessageConverter。
2、遠程http調用
有時返回結果是String需要轉換
3、redis序列化
三、注解
1、注意json注解的使用要和提供注解的json框架對上。比如@JsonProperty("companId") 是jackson提供的,@JSONField(name = "companId") 是 fastjson提供的。如果springmvc 使用的框架是 jackson,此時在字段上增加 @JSONField 是無效的。
2、jsckson注解
@JacksonAnnotation
@JacksonAnnotationsInside
@JacksonInject
@JsonAlias
@JsonAnyGetter
@JsonAnySetter
@JsonAutoDetect
@JsonBackReference
@JsonClassDescription
@JsonCreator
@JsonEnumDefaultValue
@JsonFilter
@JsonFormat
@JsonGetter
@JsonIdentityInfo
@JsonIdentityReference
@JsonIgnore
@JsonIgnoreProperties
@JsonIgnoreType
@JsonInclude
@JsonManagedReference
@JsonMerge
@JsonProperty
@JsonPropertyDescription
@JsonPropertyOrder
@JsonRawValue
@JsonRootName
@JsonSetter
@JsonSubTypes
@JsonTypeId
@JsonTypeInfo
@JsonTypeName
@JsonUnwrapped
@JsonValue
@JsonView
3、fastjson注解
@JSONField(name = "companId")
@JSONCreator
@JSONPOJOBuilder
@JSONType
@FastJsonFilter()
@FastJsonView
@ResponseJSONP
4、順便說一下java提供的字段校驗注解:都來自package javax.validation.constraints;包
@AssertFalse @AssertTrue @DecimalMax(value = "") @DecimalMin(value = "") @Digits(integer = 6, fraction = 2, message = "{javax.validation.constraints.Digits.message}") @Email @Future @FutureOrPresent @Max(1) @Min(1) @Negative @NegativeOrZero @NotBlank @NotEmpty @NotNull @Null @Past @PastOrPresent @Pattern(regexp = "\\w+$") @Positive @PositiveOrZero @Size
5、package org.springframework.data.annotation;
@Transient
@TypeAlias
@AccessType
@AccessType
@Id
@Immutable
@Persistent
@QueryAnnotation
@ReadOnlyProperty
@Reference
@Version
https://www.cnblogs.com/panbingqi/p/11212194.html
https://www.cnblogs.com/yucy/p/9057049.html