如何在将其映射到杰克逊API中的POJO时防止null作为值

时间:2019-06-19 04:00:18

标签: jackson jackson-databind jackson2 jackson-dataformat-xml

我有一段JSON,我想将其映射到某个POJO,但我不希望将null值与我的pojo映射。 {“ name”:null,“ age”:10}

我尝试了@JsonSerialize,@@ JsonInclude的值= Include.NON_NULL, 我正在使用JACKSON 2.7

package com.tech.kj.JacksonSample;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;

public class JsonOperation {
    @JsonInclude(value=Include.NON_NULL)    
    String name;
       int age;    
      public EmployeeType getEmployeeType() {
        return employeeType;
    }
    public void setEmployeeType(EmployeeType employeeType) {
        this.employeeType = employeeType;
    }
    EmployeeType employeeType;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "JsonOperation [name=" + name + ", age=" + age + ", employeeType=" + employeeType + "]";
    }


}

package com.tech.kj.JacksonSample;

import java.io.IOException;

import org.json.JSONObject;

import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args ) throws JsonParseException, JsonMappingException, IOException
    {
        String data="{'name':null,'age':10}";       
        JSONObject jsonObject=new JSONObject(data);

        ObjectMapper mapper=new ObjectMapper();     
        mapper.setSerializationInclusion(Include.NON_NULL);

        JsonOperation jsonOperation= mapper.readValue(jsonObject.toString(), JsonOperation.class);
        System.out.println(jsonOperation);
    }
}

在将json的null值序列化为pojo时映射它会出现一些错误。

0 个答案:

没有答案