Controller接收处理json数据
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
Controller如何处理json数据
1.使用RequestBody接收json数据,并转换为对象
封装的Permission对象,用于接收json数据。
@Data
@Data
public class Permission {
private Long id;
private Long roleId;
private String path;
private List<User> users=new ArrayList<User>();
private String description;
Controller测试代码如下:
@GetMapping(value ="/json,produces = "application/json;charset=UTF-8")
public Permission getPermission(@RequestBody Permission permission){
System.out.println(permission);
return permission;
}
启动项目,在postman中测试,需要在headers中填写Content-Type为application/json
然后再body中选用raw格式,然后右边选择具体的JSON格式,在下方填入传入的JSON。
Controller得到的对象为:
Permission(id=1, roleId=2, path=/dectory/, users=[User(age=16, name=张三)], description=权限)
2.以Json对象的形式接收,再使用json工具解析
开源的json处理工具有很多,如fastjson、Jackson、gson,此例中我们选用fastjson。
引入fastjson的工具包依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
postman的请求参数不变,
使用JSON对象接收数据的controller测试代码:
@GetMapping(value ="/string",produces = "application/json;charset=UTF-8")
public Permission getPermission(@RequestBody JSONObject jsonParam){
System.out.println(jsonParam);
Permission permission1 = jsonParam.toJavaObject(Permission.class);
System.out.println(permission1);
return permission1;
}
此时Controller接收到的JSON对象为:
{"path":"/dectory/","roleId":2,"description":"权限","id":1,"users":[{"age":16,"name":"张三"}]}
使用String字符串接收数据的controller测试代码:
@GetMapping(value ="/string1",produces = "application/json;charset=UTF-8")
public Permission getPermission(@RequestBody String jsonParam){
System.out.println(jsonParam);
Permission permission = JSON.parseObject(jsonParam, Permission.class);
System.out.println(permission);
return permission;
}
此时Controller接收到的JSON对象为:
{ "id": 1, "roleId":2, "path":"/dectory/", "users":[{"age":16,"name":"张三" }], "description":"权限"}
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
4 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献2条内容
所有评论(0)