今天在开发中接触到直接用Json进行数据交互,没有Html,没有form表单的开发情况。以及Spring boot 默认Json解析器对复杂Json数据处理上不能满足需求的问题,记录下自己的学习的过程,以及解决方法。
先插入原form表单情况下的Controller代码:
@PostMapping(value = "/add")
@ResponseBody
public Map<String, Object> addNews(News news) {
Map<String, Object> map = new HashMap<String, Object>();
try {
newsService.saveNews(news);
map.put("status", 200);
map.put("msg", "添加新闻成功!");
} catch (Exception e) {
e.printStackTrace();
map.put("status", 500);
map.put("msg", "添加新闻失败!");
}
return map;
}
前后端统一传输方法,@ResponseBody 注解表明返回Json,Spring Boot 会帮我们解析并封装JavaBean,直接操作JavaBean即可。
以下是我修改后的对直接的Json数据操作的Controller:
@RequestMapping(path = "/CarIn")
@ResponseBody
public Map<String, Object> addCarIn(@RequestBody CarIn carIn) {
System.out.println(carIn);
HashMap<String, Object> map = new HashMap<>(16);
map.put("code", 0);
map.put("msg", null);
map.put("data", null);
return map;
}
需要用一个@RequestBody 注解来表明要解析Json数据并封装给JavaBean。
网友评论