java后端怎么获取前端传的json属性

因为前端人员要求传到后端的查询数据也要是json格式,所以后端获取的是json格式的信息流。
首先要明确一点,一般开发接口时是要写接口文档的,这代表我们已经把可以传哪些属性,以及对应属性名,属性类型都告知给前端开发人员了,现在我们要做的就是获取这个信息流并且解析出来一一对应到我们预设的变量里。
查阅了一些资料后我发现参数改成@RequestBody 类名 对象名可以通过对象获取。
比如:
我先创建一个java类

public class UserInfo{
	private String Id;
	private String name;
	private String sex;
	//set/get/constructor我在这就不弄了,要求加的。
}

那么只要前端是按照UserInfo里属性传json,比如:

{
	"Id": "123",
	"name": "a",
	"sex": "女"
}

在后端这样设计即可:

public String getUser(@RequestBody UserInfo userInfo){
	//这个@RequestBody 能把json转化为对象
	String Id = userInfo.getId();
	//同样name和sex都可以像Id那样get得到
	//当然在类里得定义好get和set方法,一般idea或eclipse都可以做到的
}

有时候因为创建的UserInfo我们需要它保存的都是关联信息,但我们又需要一些通用的但又和这个类没关系的信息,比如我想要当前的用户loginUserId,又或者我想要返回的信息是前10个人,我想要限制返回的数量returnNumber,如果像下面这样传肯定是错的:

{
	"Id": "123",
	"name": "a",
	"sex": "女",
	"loginUserId": "b",
	"returnNumber": 10
}

这样子传一定出错,因为{}已经被要求是UserInfo的消息,loginUserId和returnNumber都不在里面,所以这么传系统去UserInfo里去找又找不到铁报错。正确方法如下:

①再创建一个专门用来存通用信息的类

public class CommonInfo{
	private String loginUserId;
	private int returnNumber;
	//set/get/constructor我在这就不弄了,要求加的。
	
}

②把通用类放到UserInfo类中

public class UserInfo{
	private String Id;
	private String name;
	private String sex;
	//set/get/constructor我在这就不弄了,要求加的。
	private CommonInfo commonInfo;
}

③json格式调整

{
	"Id": "123",
	"name": "a",
	"sex": "女",
	commonInfo:{
		"loginUserId": "b",
		"returnNumber": 10
	}	
}
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值