map 转 json 字段为null的数据丢失

问题描述:

将实体类加到map 里,然后将map 转为 JSON 会出现实体类里字段只为null的字段丢失。将map 转为String 又不会丢失。

解决思路:

将map 里所有实体类的字段为null 的转为"",空字符。这样转过""的map 转json ,就不会出现字段丢失的问题了。

解决步骤:

一,将map 里字段值为null转为""

        1.1 创建 JsonDealUtils 工具类,继承ObjectMapper


import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializerProvider;

import java.io.IOException;

/**
 * @author: zjk
 * @Description: JSON重新序列化逻辑
 * @date: 2022/6/16 22:23
 */
public class JsonDealUtils  extends ObjectMapper {

    public JsonDealUtils() {
        super();
        this.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {


            @Override
            public void serialize(Object arg0, JsonGenerator arg1, SerializerProvider arg2) throws IOException, JsonProcessingException {
                arg1.writeString("");
            }

        });
    }

}

1.2 将map 为null 字段转为"",返回值为String 类型

Map<String, Object> param = new HashMap<>();
param.put("data", data);
param.put("finishState", qcPartition.getFinishState());
param.put("finishState", qcPartition.getFinishState());
ObjectMapper objectMapper = new JsonDealUtils();
String string = objectMapper.writeValueAsString(param);

1.3 将String 转为JSON

JSONObject parse = JSONObject.parseObject(string);

这时值为null 的字段就转为了"",

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vegetari

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值