json(類轉化)序列化和lombok注解以及日志@Slf4j


json

解決json請求的前端和后端傳輸數據轉換問題
在序列化和反序列化時對參數進行處理

name工程的一個json轉化過程

@JsonDeserialize

傳入的值進行轉化
1、 extends JsonDeserializer
2、deserialize
deserialize(JsonParser p, DeserializationContext ctxt)

p.getText()來轉化為字符串

@JsonSerialize

返回到前端數據時候 需要轉化一下(getter()時候轉換)
1、extends JsonSerializer 實現serialize 方法
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"); } };


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM