pigxCloud微服务项目07——服务端——将所有展示到前端字段的null值改为““

展示到前端的对象,字段null值改为""

增加配置类

package com.cxbdapp.hbhtyyBackground.config;

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 org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;

import java.io.IOException;

@Configuration
public class JsonConfig {
	@Bean
	@Primary
	@ConditionalOnMissingBean(ObjectMapper.class)
	public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
		ObjectMapper objectMapper = builder.createXmlMapper(false).build();
		objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {
			@Override
			public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
				jsonGenerator.writeString("");
			}
		});
		return objectMapper;
	}
}

返回结果对比:

{
    "code": 200,
    "msg": "退出当前账号成功",
    "data": {
        "username": "zxy_doctor",
        "salt": null,
        "email": null,
        "avatar": null,
        "lockFlag": "0",
        "delFlag": "0",
        "wxOpenid": null,
        "miniOpenid": null
    }
}
{
    "code": 200,
    "msg": "退出当前账号成功",
    "data": {
        "username": "zxy_doctor",
        "salt": "",
        "email": "",
        "avatar": "",
        "lockFlag": "0",
        "delFlag": "0",
        "wxOpenid": "",
        "miniOpenid": ""
    }
}

注意不能返回JSONObject数据

例如:

@ApiOperation(value = "小程序登录", notes = "小程序登录")
@Inner(value = false)
@GetMapping("/login")
public R login(@RequestParam(value = "code") String code) {
	try {
		JSONObject jsonObject = getOpenidToken(code);
		return R.buildResult(jsonObject, VoCodeEnum.SUCCESS.getCode(), "小程序登录成功");
	} catch (Exception e) {
		log.error("小程序登录程序异常", e);
		return R.buildResult(null, VoCodeEnum.FAIL.getCode(), "小程序登录程序异常");
	}
}

访问报错:

{
    "code": 1,
    "msg": "Type definition error: [simple type, class cn.hutool.json.JSONNull]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class cn.hutool.json.JSONNull and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.cxbdapp.msp.common.core.util.R[\"data\"]->cn.hutool.json.JSONObject[\"token\"])",
    "data": ""
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小言W

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

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

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

打赏作者

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

抵扣说明:

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

余额充值