我的RestController不从我的对象返回所有属性

时间:2019-08-29 19:26:18

标签: java spring spring-mvc spring-tool-suite

我无法将我的完整对象序列化为Java API Rest。某些属性未在响应方法中返回。

我有一个像这样的对象:

public class Localization {
    private Long id;
        //another properties..
    private Person person; 


       // getters and setters
}

这是我的RestController中的方法示例:

尝试1:

@GetMapping("/getlocalization")
public ResponseEntity<Localization> getlocalization() {
  Localization localization = new Localization();
  localization.setId(1);
  localization.setPerson(
    new Person(..properties..)
  );
  return new ResponseEntity<Localization>(localization, HttpStatus.OK);
}

尝试2:

@GetMapping("/getlocalization")
public Localization getlocalization() {
  Localization localization = new Localization();
  localization.setId(1);
  localization.setPerson(
    new Person(..properties..)
  );
  return localization;
}

这是我的退货,没有人的财产:

{"id": 1, ..another properties...}

我无法获得完整的对象

{"id": 1, ..another properties..., person: {..properties..}}

3 个答案:

答案 0 :(得分:0)

类本地化:

public class Localization {
    private Long id;
    private Person person;

    //constructor with args

    // getters and setters
}

班级人员:

public class Person {

    private String name;
    private String lastName;

     //constructor with args

    // getters and setters
}

您的Get方法:

 @GetMapping("/getlocalization")
    public Localization getlocalization() {
        return new Localization(new Long(1),new Person("name","lastName"));
    }

这对我有用!

答案 1 :(得分:0)

请您能详细说明对象定义,并进一步详细说明要执行的步骤?

在任何情况下,在发送响应后我都没有收到特定属性,因此这一定是由于一些小错误,可以通过完整查找类定义来清除。

在使用邮递员应用程序时,会出现这种问题,即属性名称会由于setter / getter方法遵循的错误命名约定而发生更改。

答案 2 :(得分:0)

对不起。

我在属性对象中添加了一个@JsonIgnore注释。

@JsonIgnore 私人人物;

public class Localization {
    private Long id;
    @JsonIgnore
    private Person person;

    //constructor with args

    // getters and setters
}

对不起,所有人都愚蠢! = /