java - 返回 JSON 的 Spring Restful Web 服务

标签 java json spring rest

我刚刚在 Spring.io http://spring.io/guides/gs/rest-service/ 上接过教程并创建了一个简单的休息服务。但是,有人知道如何以 JSON 格式返回多个对象吗?例如,如果我有一个带有名称和 ID 的人员类,我如何将三个人添加到/persons?

最佳答案

您可以使用@ResponseBody注释并返回您想要的任何内容,前提是这些对象可以被json化。

例如,您可以有一个像这样的 bean:

@Data
public class SomePojo {
   private String someProp;
   private List<String> someListOfProps;
}

然后在你的 Controller 中你可以:

@ResponseBody
@RequestMapping("/someRequestMapping")
public List<SomePojo> getSomePojos(){
  return Arrays.<String>asList(new SomePojo("someProp", Arrays.<String>asList("prop1", "prop2"));
}

默认情况下,Spring 将使用其 Jackson 映射器来执行此操作,因此您会得到如下响应:

[{"someProp":"someProp", "someListOfProps": ["prop1", "prop2"]}]

同样的方式,您可以绑定(bind)到一些对象,但是这一次,使用 @RequestBody 注解,这次将使用 jackson 为您预先转换 json。

你能做的是

@RequestMapping("/someOtherRequestMapping")
public void doStuff(@RequestBody List<SomePojo> somePojos) {
   //do stuff with the pojos
}

关于java - 返回 JSON 的 Spring Restful Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21755169/

相关文章:

java - 为什么Stream.reduce采用BinaryOperator <T>而不是BiFunction <T,T,T>?

java - Servlet/JSP 应用程序中的 JDBC 连接方法

javascript - 如何从restful web服务访问json对象的属性

使用 jUnit 测试 RESTful Api 时出现 java.lang.NullPointerException

java - JSP Spring MVC 应用程序中的缓存

java - 线程代码中的断言不会使测试用例失败

java - 如何在另一台计算机上安装.jar依赖项?

json - 未解析 BigQuery 时间戳

java - java 中的动态 Json 到 CSV。寻找适用于任何 json 的通用代码,无论 json 文件中的节点数量是多少

java - 创建 ServletContext 资源 [/WEB-INF/hibernateContext.xml] 中定义的名称为 'sessionFactory' 的 bean 时出错