fastJSON和jackson对组合实体类传入格式的探究

概述

在业务分析及数据库设计时,我们可能想将以字符串格式存储存储json数组对象

即以字符串格式存储下面对象

[{"color":"红色","url":"http://192.168.25.133/group1/M00/00/01/wKgZhVmHINKADo__AAjlKdWCzvg874.jpg"},{"color":"黑色","url":"http://192.168.25.133/group1/M00/00/01/wKgZhVmHINyAQAXHAAgawLS1G5Y136.jpg"}]

那么,fastJSON和jackson是否支持

"tbGoodsDescs":{"itemImages":[{"color":"红色","url":"http://192.168.25.133/group1/M00/00/01/wKgZhVmHINKADo__AAjlKdWCzvg874.jpg"},{"color":"黑色","url":"http://192.168.25.133/group1/M00/00/01/wKgZhVmHINyAQAXHAAgawLS1G5Y136.jpg"}]}

的传入呐?

我们做一个探究

fastJSON

首先在Application中配置fastJSON

@Bean
    public HttpMessageConverters fastJsonHttpMessageConverters() {
        //1、定义一个convert转换消息的对象
        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
        //2、添加fastjson的配置信息
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        //3、在convert中添加配置信息
        fastConverter.setFastJsonConfig(fastJsonConfig);
        //4、将convert添加到converters中
        HttpMessageConverter<?> converter = fastConverter;
        return new HttpMessageConverters(converter);
    }

Controller是这样的

@PostMapping("/saveGoodsAndGoodsDesc")
    public String saveGoodsAndGoodsDesc(@RequestBody GoodsAndgoodsDesc goodsAndgoodsDesc){
        goodsAndgoodsDesc.getTbGoodsDescs().setGoodsId((long) 666666);
        iTbGoodsDescService.save(goodsAndgoodsDesc.getTbGoodsDescs());
        return "good";
}

组合实体类

@Data
public class GoodsAndgoodsDesc {

    private TbGoods goods;
    private TbGoodsDesc tbGoodsDescs;

    @Override
    public String toString() {
        return "GoodsAndgoodsDesc{" +
                "goods=" + goods +
                ", tbGoodsDescs=" + tbGoodsDescs +
                '}';
    }
}

来测试:
在这里插入图片描述
可以看到有正确返回了

在来看数据库中

在这里插入图片描述
也是有数据的,OKK

jackson

我们把Application中的fastJSON配置注掉,SpringBoot是默认是支持jackson的,为此不用做配置,直接测就好

在这里插入图片描述
当传入

{

"tbGoodsDescs":{"itemImages":[{"color":"红色","url":"http://192.168.25.133/group1/M00/00/01/wKgZhVmHINKADo__AAjlKdWCzvg874.jpg"},{"color":"黑色","url":"http://192.168.25.133/group1/M00/00/01/wKgZhVmHINyAQAXHAAgawLS1G5Y136.jpg"}]}

}

直接报错,

那么说明,jackson是不支持将json数组对象转换为字符串的,要将以字符串格式存储存储json数组对象的话,可以考虑在SpringBoot中配置、使用fastJSON

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值