有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何避免在使用Jackson时从JSON字符串反序列化空JSON数组元素

我正在使用Jackson 2库,并尝试反序列化JSON响应,如下所示:

{
    "employee": [
    {},
    {
        "Details": [
            {
                "Name": "value",
                "Lastname": "value"
            }
        ]
    }
]}

由于某些原因,我的employee数组中有一个空元素。在反序列化过程中,是否可以丢弃该元素并避免对其进行反序列化?目前,我的代码将空employee反序列化为带有null字段的employee POJO类

我的代码如下所示:

ObjectMapper mapper = new ObjectMapper();
Empoyee[] array = mapper.readValue(json, Empoyee[].class);

另外,我无法触摸JSON响应。这就是它是什么


共 (3) 个答案

  1. # 1 楼答案

    首先,请确保您有setter、getter和constructor,然后, 您可以使用以下选项:

    Employee employee = mapper.readValue(yourJson, Employee.class);
    
  2. # 3 楼答案

    希望它能帮助你

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

    ObjectMapper mapper = new ObjectMapper ().configure(
            DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).setSerializationInclusion(
                    JsonInclude.Include.NON_NULL);