Springboot返回json格式
1、技术概述
该技术是解决springboot如何返回json格式的问题。学习该技术的起因是我们组的项目需要接口返回json格式,有时还需要多重嵌套返回要求的格式。技术难点
主要在返回嵌套json格式,如何正确的装配并返回也是一个难点。
2、技术详述
核心是使用RestController关键字
@RestController
public class UserController {
@Autowired
private UserService userService;
/*用户登录
*@成功返回true
* */
@PostMapping(value = "/login")
public HashMap<String, Object> login(@RequestBody User user){
return userService.loginCheck(user);
}
/*用户注册
* @成功返回true
* */
@ResponseBody
@PostMapping(value = "/register")
public HashMap<String, Object> register(@RequestBody User user){
return userService.registerCheck(user);
}
/*修改个人信息
* 成功返回true
* */
@ResponseBody
@PostMapping(value = "/user/update")
public HashMap<String,Object> update(@RequestBody User user){
return userService.updateCheck(user);
}
/*修改密码
* 成功返回true
*/
@ResponseBody
@PostMapping(value = "/user/update/password")
public HashMap<String,Object> updatePassword(@RequestBody User user){
return userService.updatePassword(user);
}
}
在service中返回Map
将要返回的信息写入map中,如以下代码中的result.put就是写的过程。可以将对象写入map中,如result.put("data",user);
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
@Transactional(rollbackFor = Exception.class)
public HashMap<String,Object> updatePassword(User user){
User user1 = userRepository.findByUserId(user.getUserId());
HashMap<String,Object> result = new HashMap<>();
try {
if (user1!=null){
user1.setPassword(user.getPassword());
userRepository.save(user1);
result.put("status",1);
result.put("msg","修改成功");
}
else {
result.put("status",0);
result.put("msg","修改失败");
}
}
catch (Exception e){
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
result.put("status",0);
result.put("msg","修改失败");
return result;
}
return result;
}
}
以上方法即可解决返回json格式的问题
3、技术使用中遇到的问题和解决过程。
问题:遇到的问题如何在嵌套json中读取数据。
解决方法:使用List读取最外层的标签,层层剖析。
List<List> list = (List<List>) submitOuter.getContent().get("tableData");
for (int i = 0; i < list.size(); i++) {
String str = (String) list.get(i).get(list.get(i).size()-1);
int id = (int) list.get(i).get(0);
GroupSuggestion groupSuggestion = new GroupSuggestion();
groupSuggestion.setSuggestion(str);
groupSuggestion.setEvaluationOuterId(submitOuter.getEvaluationOuterId());
groupSuggestion.setGroupId(id);
groupSuggestionRepository.save(groupSuggestion);
}
4、总结。
Springboot下的json数据格式处理不是特别复杂,主要是灵活运用Map、List等方法对数据处理后,返回json格式。