RestTemplate传输值为null的属性利用FastJson将属性中有空值null的对象转化成Json字符串

Posted rhyme

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RestTemplate传输值为null的属性利用FastJson将属性中有空值null的对象转化成Json字符串相关的知识,希望对你有一定的参考价值。

 

一个pojo类:

import lombok.Data;

@Data
public class Friend {
    private String name;
    private int age;
    private String sex;
}

 

初始化一个Friend对象,该对象属性为"sex"对应的值设置为null:

public class FriendTest {
    private Friend friend = new Friend();

    @Before
    public void init(){
        friend.setAge(26);
        friend.setName("xiaofang");
        friend.setSex(null);
    }

 

使用FastJson将该对象转化为Json字符串:

@Test
    public void testObjectToJson(){
        String jsonString = JSONObject.toJSONString(friend);
        System.out.println(jsonString);
    }

 

可以看到,"sex"字段由于为null,转化时该字段没了。

设置序列化类型

@Test
    public void testJsonSerializer(){
        String jsonString = JSONObject.toJSONString(friend, SerializerFeature.WriteMapNullValue);
        System.out.println(jsonString);
    }

就有值为null的属性了。

 

 

RestTemplate传输值为null的属性

使用RestTemplate传输该Friend对象时,值为null的属性会被忽略掉,但是我们在某些情况下想要传输值为null属性,我们可以在该字段上加上com.fasterxml.jackson.annotation.@JsonInclude注解,通过RestTemplate传输,就不会忽略值为null的属性。

 

以上是关于RestTemplate传输值为null的属性利用FastJson将属性中有空值null的对象转化成Json字符串的主要内容,如果未能解决你的问题,请参考以下文章

利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils

Spring Resttemplate:使用@JsonIgnore 解析导致值为空

属性默认值为 null 是不是与无默认值相同?

Configuration类的@Value属性值为null

@Value()读取配置文件属性,读出值为null的问题

如果使用角度js的任何属性的所有json值为null,如何隐藏表列