SpringBoot使用@JsonDeserialize和@JsonSerialize注解的功能简介说明

杨采妮 SpringBoot 发布时间:2022-05-29 22:31:44 阅读数:9137 1
下文笔者讲述@JsonDeserialize和@JsonSerialize注解的功能简介说明
SpringMVC
   在SpringMVC
   在Controller中接受请求的数据或返回数据
   我们需使用@JsonDeserialize和@JsonSerialize处理数据

@JsonDeserializer

public class ParamToStrDeserializer extends JsonDeserializer<String> {
    @Override
    public String deserialize(
            JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
        TreeNode treeNode = jsonParser.getCodec().readTree(jsonParser);
        if (treeNode instanceof IntNode) {
            return ((IntNode) treeNode).asText();
        } else if (treeNode instanceof LongNode) {
            return ((LongNode) treeNode).asText();
        } else if (treeNode instanceof ArrayNode) {
//字符串数组,会多出两个引号,需要手动去除
            return StringUtils.replace(StringUtils.join((ArrayNode) treeNode, ","), "\"", "");
        } else if (treeNode instanceof TextNode) {
            return ((TextNode) treeNode).asText();
        }
        return "";
 
    }
}
使用ParamToStrDeserializer的转化
无论传的值是数字
如:【88】或者【"88"】;还是数组
如【[10,20,30]】或者【["10","20","30"]】可统一转化为用逗号分隔的字符串格式 

例:
在需要自动转化的字段上加上注解
@JsonDeserialize(using = ParamToStrDeserializer.class)
private String args;
采用以上注解,则args会自动处理为相应格式

@JsonSerialize

@JsonSerialize的用法,@JsonDeserialize的反向用法。
public class MyJsonSerializer extends JsonSerializer<list<Integer>> {
 
    @Override
    public void serialize(
            List<Integer> stateList, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        String join = StringUtils.join(stateList, ",");
        jsonGenerator.writeString(join);
 
    }
}
@JsonSerialize(using = MyJsonSerializer.class)
private List<Integer> args;
采用以上方式,前端收到的字符串是一个逗号分隔的字符串
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringBoot/202205/3555.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者