java - Spring MVC 可以反序列化 JSON(可以是对象或数组)吗?

标签 java json spring spring-mvc jackson

我有 Controller 在请求正文中接收 JSON,它可以是对象或对象数组。例如:

{
  "id" : 1,
  "name" : "Nick",
  "surname" : "Cave"
}

[
 {
   "id" : 1,
   "name" : "Nick",
   "surname" : "Cave"
 },
 {
   "id" : 2,
   "name" : "Jack",
   "surname" : "White"
 }
]

有没有办法强制 Spring 以与单独对象类似的方式将 JSON 反序列化为对象?

@RequestMapping(value = "/", method = RequestMethod.POST)
public void postController(@RequestBody User user, ...) {
   ...
}

如果不是,解析和验证此类消息的优雅方法是什么?

最佳答案

所以1)添加到maven:

<dependency>
  <groupId>org.codehaus.jackson</groupId>
  <artifactId>jackson-mapper-asl</artifactId>
  <version>1.9.13</version>
</dependency>

2)

@RequestMapping(value = "/addPerson",
                method = RequestMethod.POST,
                headers = {"Content-type=application/json"})
@ResponseBody
public JsonResponse addPerson(@RequestBody Person person) {
  logger.debug(person.toString());
  return new JsonResponse("OK","");
}

关于java - Spring MVC 可以反序列化 JSON(可以是对象或数组)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30124417/

相关文章:

java - Spring状态机嵌套机器同步运行

java - 添加依赖关系导致找不到主类

java - 从 Java ObjectInputStream 中丢弃坏对象

java - 使用 BeanPostProcessor 时在 Spring 中获取 BeanNotOfRequiredTypeException

javascript - 在 Javascript 中存储 JSON 响应的大小

javascript - API 请求在使用 phonegap 调试时不工作,但在模拟器中工作,为什么?

javascript - 如何用javascript浏览json内容?

java - 为什么这个 Android 应用程序不能将 Firebase 中的文本转换为字符串?

java - 如何使用 Spring RestTemplate 压缩 HTTP 请求?

java - 设置 session 变量spring mvc 3