Picture Picture Picture Picture Picture Picture Picture

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"); } };

posted @ 2020-08-20 10:54  云行雨步  阅读(1968)  评论(0编辑  收藏  举报
Title - Artist
0:00