当前位置: 首页 > 知识库问答 >
问题:

我的 Rest 控制器不从我的对象返回所有属性

鲍驰
2023-03-14

我不能将完整的对象序列化到Java API Rest中。响应方法中没有返回某些属性。

我有一个这样的对象:

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

       // getters and setters
}

这是我在RestController中的方法的一个示例:

@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);
}
@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个答案

孔宇
2023-03-14

我很抱歉。

我在我的属性对象中放了一个注解@JsonIgnore。

@JsonIgnore私人人士;

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

    //constructor with args

    // getters and setters
}

为所有的愚蠢感到抱歉!=/

金和雅
2023-03-14

请详细说明对象定义,并详细说明您所遵循的步骤?

没有任何情况下,我没有收到一个特定的属性在它被发送后的响应,所以这一定是因为一些小错误,这将是清楚的类定义的完整查找。

当使用 postman 应用程序时,如果由于 setter/getter 方法遵循错误的命名约定而导致的属性名称更改,则会出现此类问题。

翟越
2023-03-14

类别本地化:

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
}

您的获取方法:

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

这是我的工作!!

 类似资料:
  • 但是,当我返回列表时,就像这段代码: 对于完全相同的API的列表返回类型的响应是正确的响应: [{“SellingPrice”:23000,“ID”:1,“Version”:1,“CreatedOn”:“25Feb 2019,05:53”,“LastUpdatedOn”:“25Feb 2019,05:53”}]

  • 问题内容: 我的MVC控制器中有一个简单的方法: 这是一个区域对象: 这就是我从视图中调用方法的方式: 我已经检查了控制器中的方法,并创建了Area对象的列表。您有什么主意,为什么从视图中调用该方法时为什么会出现500内部服务器错误?当我返回其他任何内容(例如Dictionary对象)时,一切正常,只是当我打算将Areas列表转换为Json时,我得到一个错误。 问题答案: 由于类包含和包含的集合,

  • 如果可以从Spring返回,我很好奇 这样做可以吗?我试过了,Spring返回的不是流的值。 我应该继续返回

  • 我正在尝试让API控制器在ASP.NET MVC4 web应用程序中工作。但是,每一个请求都得到一个404,我很难理解。:/ 我从项目模板中定义了标准API控制器路由,如下所示: 在global.asax中调用注册: 我有这样一个基本的API控制器: 现在,当我浏览到localhost:59900/api/favorites时,我希望调用Get方法,但我得到了一个404状态代码和以下响应: 如果你

  • 当我使用System.out.println静态方法时,下面的Java程序显示ArrayList中的所有元素。但是,当我在方法中返回列表时,它只显示ArrayList中的一个元素。我希望你能给我一些指点,让我知道你做错了什么:

  • 注意,包括在内的log语句实际上可以抛出一个NPE,然后捕获并记录该NPE。这并不漂亮,但这也不是这里的重点。 最终,无论是否有值,我都会返回它。 在值的情况下,客户端将收到HTTP 204状态码。这是显示的内容: null 谢谢 这里有一个关于相同主题的很好的问题:当没有找到REST资源时返回404是正确的吗?