json
解決json請求的前端和后端傳輸數據轉換問題
在序列化和反序列化時對參數進行處理
name工程的一個json轉化過程
@JsonDeserialize
傳入的值進行轉化
1、 extends JsonDeserializer
2、deserialize
deserialize(JsonParser p, DeserializationContext ctxt)
p.getText()來轉化為字符串
@JsonSerialize
返回到前端數據時候 需要轉化一下(getter()時候轉換)
1、extends JsonSerializer
2、@JsonSerialize(using = .class)
serialize(Integer status, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
json轉化為類
ObjectCodec oc = p.getCodec();
JsonNode node = oc.readTree(p);
JsonNode wcNode = node.get(WCRequest.OPS_WC);
if (wcNode == null) {
throw new FailureException(NamingErrorCode.INVALID_WC);
}
WCRequest wcRequest = new WCRequest();
ObjectMapper mapper = new ObjectMapper();
wcRequest.setOperatorWC(mapper.convertValue(wcNode, WorkContext.class));
JsonNode dataNode = node.get(WCRequest.DATA);
if (dataNode != null) {
Map<String, Object> dataMap = mapper.convertValue(dataNode, Map.class);
wcRequest.fillData(dataMap);
}
lombok
屬性注解 @Getter/@Setter
為成員變量生成對應的get和set方法
@ToString/@EqualsAndHashCode
生成toString,equals和hashcode方法,
@ToString(exclude={“param1”,“param2”})來排除param1和param2兩個成員變量,或者用
@ToString(of={“param1”,“param2”})來指定使用param1和param2兩個成員變量,
@EqualsAndHashCode注解也有同樣的用法。
類注解 @NoArgsConstructor /@AllArgsConstructor /@RequiredArgsConstructor
1/2為該類產生無參的構造方法和包含所有參數的構造方法
@RequiredArgsConstructor 配合@NonNull注解的或者帶有final修飾的成員變量生成對應的構造方法
含有final修飾的成員變量,是無法使用@NoArgsConstructor注解的
(access = AccessLevel.PROTECTED 表示生成的構造器屬於protected
方法參數和屬性注解 NotNull
@Data/@Value
@Data相當於 一系列注解
@Value注解和@Data類似,區別在於它會把所有成員變量默認定義為private final修飾,並且不會生成set方法
日志
日志@Slf4j
HashMap
HashMap<String, String> map = new HashMap<String, String>() { { put("Name", "June"); put("QQ", "2572073701"); } };