如何使用ObjectMapper从空JSON文件反序列化为Java Object

时间:2018-09-15 11:45:07

标签: java jackson objectmapper

我有一个json文件(a.json),其内容如下:-

{
"name" : "ABC",
"id": "1234"
}

我尝试使用以下代码反序列化到Student类:-

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.readValue(new File("a.json"), Student.class)  

其中学生班为:-

class Student {

    private String name;
    private String id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}

此代码可以正常工作。但是问题是假设当我尝试反序列化以下代码时a.json文件为空,代码引发EOFException,消息为“由于输入结束,没有内容可以映射到对象”

Student student =objectMapper.readValue(new File("a.json"), Student.class)

如何处理?有没有一种方法可以配置对象映射器,以便它不会引发异常并只返回null?

1 个答案:

答案 0 :(得分:1)

try{
    Student student =objectMapper.readValue(new File("a.json"), Student.class);
} catch(EOFException e) {
    Student student = new Student(null, null);
}

实现您想要的吗?