javajson注解_json注解及序列化
⼀、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
validation框架
@JsonRawValue
@JsonRootName
@JsonSetter
@JsonSubTypes
@JsonTypeId
@JsonTypeInfo
@JsonTypeName
@JsonUnwrapped
@JsonValue
@JsonView
3、fastjson注解
@JSONField(name = "companId")
@JSONCreator
@JSONPOJOBuilder
@JSONType
@FastJsonFilter()
@FastJsonView
@ResponseJSONP
4、顺便说⼀下java提供的字段校验注解:都来⾃package straints;包
@AssertFalse
@AssertTrue
@DecimalMax(value= "")
@DecimalMin(value= "")
@Digits(integer= 6, fraction = 2, message = "{ssage}")
@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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。