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