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

为客户机返回json格式的消息和数据-java/spring/rest

葛驰
2023-03-14

我希望返回一个自定义消息以及我的endpoint应该以json格式返回的数据。例如:

{
 "id": "1",
 "name": "John",
 "surname": "Jackson",
 "city": "Los Angeles"
 "message": "There was only 1 person in chosen category"
}  

所以我的person POJO类有字段:id、姓名、姓氏、城市。然而,我也想返回消息,这样客户机应用程序就可以在前端显示消息。我在找解决办法。默认情况下,控制器endpoint可以将对象作为json返回,这没有问题。但这只是给我数据,200个状态,仅此而已。我找到了返回ResponseEntity的方法,但这也不能解决问题,因为在response body中需要一个POJO,所以我仍然不能将自定义消息与数据一起发送。我需要发送自定义消息,数据和一个适当的状态代码。

共有1个答案

华烈
2023-03-14

您可以创建将从控制器返回的泛型类,该类将使用message属性丰富模型:

public class ServerResponse {
    @JsonUnwrapped
    private final Object wrapped;
    private final String message;

    public ServerResponse(Object wrapped, String message) {
        this.wrapped = wrapped;
        this.message = message;
    }
    //getters
}

然后您可以在构造函数中将任何对象传递给该类,并让Jackson为您处理序列化。这样,您不必为每个模型创建一个新类:

User user = new User("1", "John", "Jackson", "Los Angeles");
ServerResponse serverResponse = new ServerResponse(user, "There was only 1 person in chosen category");

当您从控制器返回ServerResponse时,它将被序列化为:

{
   "id":"1",
   "name":"John",
   "surname":"Jackson",
   "city":"Los Angeles",
   "message":"message"
}
 类似资料:
  • 使用SockJS java客户机,我试图连接到Spring SockJS服务器,但对于大约20KB的消息(没有标头),错误为1009。Javascript库工作正常。 还必须将Java SockJS客户端配置为接收更大的消息。 或者,服务器上的配置仍然错误。 如何在Java SockJS Spring客户机上增加缓冲区大小?

  • 问题内容: 我有一个具有html模板的django应用程序,还有一个命令行python API,可以对服务器上的django应用程序执行GET和POST请求。该api几乎可以执行django应用程序可以执行的所有操作。我如何做到这样,当我通过浏览器访问django应用程序时,它返回html,但是当我通过api访问它时,它返回json? 我将在哪里放置json?我必须对我的应用程序进行哪些更改? 谢

  • 本文向大家介绍JS 对java返回的json格式的数据处理方法,包括了JS 对java返回的json格式的数据处理方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇JS 对java返回的json格式的数据处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍Spring mvc实现Restful返回json格式数据实例详解,包括了Spring mvc实现Restful返回json格式数据实例详解的使用技巧和注意事项,需要的朋友参考一下 在本示例中,我们将向您展示如何将对象转换成json格式并通过spring mvc框架返回给用户。 使用技术及环境: Spring 3.2.2.RELEASE Jackson 1.9.10 JDK 1.6

  • 这非常相似,但我的问题不同:对于非OK响应,返回带有IHttpActionResult的内容 考虑到问题不同,我要求一个更简洁的答案,如果存在的话。 我的架构如下: 对后端控制器的Javascript/jQuery调用 后端控制器调用WebAPI服务。 WebAPI服务查询数据库(etc)并返回数据 我有以下简化代码(网络 API)... 示例1:如果产品id不存在,则返回错误: 示例2如果产品i

  • 本文向大家介绍springMVC返回复杂的json格式数据方法,包括了springMVC返回复杂的json格式数据方法的使用技巧和注意事项,需要的朋友参考一下 一、springMVC返回json格式数据常用的写法是使用@ResponseBody注解,在每一个方法前加上这个注解,springMVC的json解析机制会自动把返回值(Object类型的对象)转换为json格式的数据,如果返回的json对