springboot自定义Json解析

情景:

通过@ResponseBody注解返回json数据,通常返回的是一个Object,spring会自动将Object转化为json字符串。但是在某些时候,我希望对返回的json做进一步处理,比如再次封装一下,那么在springboot中可以通过@JsonComponent注解来处理

用法:
@JsonComponent
public class Json {

    public static class Serializer extends JsonSerializer<Object> {

        // arg0 即是Controller返回的对象
        // arg1 即是输出对象
        @Override
        public void serialize(Object arg0, JsonGenerator arg1, SerializerProvider arg2) throws IOException {
            // 新的map
            Map<String, Object> map = new HashMap<>(2);
            // 添加自定义值
            map.put("a", "这是一个处理添加参数");
            // 添加原返回值
            map.put("base", arg0);

            // 输出
            arg1.writeString(new ObjectMapper().writeValueAsString(map));

            // 使用以上方法默认会转义引号等符号,可以使用 writeRaw 方法进行输出
            // raw 即未加工的 不会改变格式
            // 1.使用自带解析器
            // writeRaw(new ObjectMapper().writeValueAsString(map));
            // 2.使用FastJson
            // arg1.writeRaw (JSON.toJSONString(map));
        }

    }
}

注意:此配置类需被spring扫描到

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值