spring boot 返回的json中去掉值为null的属性

直接上代码:


import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonGenerator;
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 JacksonConfig {

    @Bean
    @Primary
    @ConditionalOnMissingBean(ObjectMapper.class)
    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
        /*此方法可以修改值为null的参数值
        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("");
            }
        });*/
        //此方法可以直接屏蔽掉值为null的参数
        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        return objectMapper;
    }
}
Spring Boot 是一款基于Spring框架开发的快速构建企业级Java应用的工具。使用Spring Boot接收JSON字符串的过程分为两个步骤:1)数据传输,2)数据解析。 首先,为了接收JSON字符串,我们需要在后端提供需要被访问的RESTful接口。对于Spring Boot项目而言,我们可以通过创建Controller类来定义RESTful接口。在Controller类,我们可以通过注解的方式指定请求的API路径和请求方式。例如,我们可以在Controller类添加如下代码片段: @RestController public class MyController { @PostMapping("/my-api") public String addNewData(@RequestBody String jsonData) { //处理接收到的JSON数据 return "OK"; } } 在上述代码,我们使用了@PostMapping注解来指定请求方式,同定义了API路径为“/my-api”。在addNewData()方法,我们通过@RequestBody注解来获取到传过来的JSON字符串,并在方法内部进行解析和处理。 接着,我们需要将JSON字符串解析成Java对象Spring Boot可以使用JsonProperty注解将JSON对象属性映射到Java对象。例如,我们可以在Java对象定义如下代码片段: public class MyData { @JsonProperty("name") private String name; @JsonProperty("age") private int age; // Getter and Setter } 上述代码定义了一个名为MyData的Java类,其包含两个属性,分别为name和age。通过@JsonProperty注解,我们将JSON对象的"name"属性映射到了name属性,将"age"属性映射到了age属性。这样,在接收到JSON字符串后,我们可以使用Jackson库解析JSON字符串为Java对象: @RestController public class MyController { @PostMapping("/my-api") public String addNewData(@RequestBody String jsonData) { ObjectMapper mapper = new ObjectMapper(); MyData myData = null; try { myData = mapper.readValue(jsonData, MyData.class); } catch (IOException e) { e.printStackTrace(); } System.out.println(myData.getName() + " " + myData.getAge()); return "OK"; } } 在上述代码,我们首先通过ObjectMapper类创建对象,并使用readValue()方法将JSON字符串解析为MyData对象。最后,我们通过myData.getName()和myData.getAge()方法获取name和age属性的值,以便在后续的逻辑使用。 总结一下,Spring Boot接收JSON字符串的过程主要分为两个步骤:1)定义RESTful接口,2)解析JSON字符串为Java对象。通过上述步骤,我们可以非常方便地在后端处理JSON字符串,并将其转化为Java对象,以便后续业务逻辑的处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值