Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring MVC映射Jackson2JSONView集合元素重复_Java_Json_Spring Mvc_Jackson - Fatal编程技术网

Java Spring MVC映射Jackson2JSONView集合元素重复

Java Spring MVC映射Jackson2JSONView集合元素重复,java,json,spring-mvc,jackson,Java,Json,Spring Mvc,Jackson,给定Person.java: public class Person implements Serializable { private static final long serialVersionUID = 1L; private String lastName; private String firstName; private String middleName; // ... public String getLastName()

给定Person.java:

public class Person implements Serializable {
    private static final long serialVersionUID = 1L;

    private String lastName;
    private String firstName;
    private String middleName;

    // ...

    public String getLastName() {
        return lastName;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getMiddleName() {
        return middleName;
    }
}
和Persons.java:

public class Persons implements Serializable {
    private static final long serialVersionUID = 1L;

    private final List<Person> persons;

    public Persons(List<Person> persons) {
        this.persons = persons;
    }

    public List<Person> getPersons() {
        return persons;
    }
}

如何删除额外的元素?

原因可能是您有一个名为
persons
的模型属性,您将返回该属性以将其转换为json:

model.addAttribute(“persons”,personsType)

我可以想出两个好办法:

  • 要改为使用带注释的控制器方法
    @ResponseBody
    ,您可以通过这种方式返回persons,而
    MappingJackson2HttpMessageConverter
    将您的类型干净地转换为json

  • 如果您想继续您的方法,您可以自定义
    MappingJackson2JsonView
    ,使用一个附加的标志指示它必须在序列化为json之前从模型中提取值-请参阅

  • {
      "persons" : {
        "persons" : [ {
          "lastName" : "McCartney",
          "firstName" : "James",
          "middleName" : "Paul"
        }, {
          "lastName" : "Lennon",
          "firstName" : "John",
          "middleName" : "Winston"
        }, {
          "lastName" : "Starkey",
          "firstName" : "Richard",
          "middleName" : null
        }, {
          "lastName" : "Harrison",
          "firstName" : "George",
          "middleName" : null
        } ]
      }
    }