PostMan传json以及后端接收json方式方法
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
今天做了个新的需求,结果焦头烂额,因为之前没做过@requestBody接收前端传值的功能,煞是费脑筋。
同事的一句话点醒了我,json接收可以用String也可以是Map(我的map接收没搞定,很是丢人啊!),啥都可以接,在于解析。
JSON数据:
{
"billId": "201911111111",
"userId": "****01",
"data": [
{ "deviceId": "2",
"parts": [
{
"partsId": "21",
"quantity": 1
},
{
"partsId": "22",
"quantity": 11
}
]
},
{
"deviceId": "1",
"parts": [
{
"partsId": "11",
"quantity": 1
},
{
"partsId": "12",
"quantity": 11
}
]
}
]
}
PostMan传值
这个传值一定要事先验证是不是json格式,然后在postman里设定格式,我用的是raw,图片如下:
后端解析代码:
public ResultBean<Object> partReceive(@RequestBody String str) {
ResultBean<Object> resultBean = new ResultBean<>();
resultBean.setCode(-1);
Map data = (Map)JSON.parse(str);
String billId = (String) data.get("billId");
String userId= (String) data.get("userId");
System.out.println("billId:"+billId);
System.out.println("userId:"+userId);
String data1= data.get("data").toString();
JSONArray jsonArr = JSONArray.parseArray(data1);
if(jsonArr.size()>0){
for (Object value : jsonArr) {
Map<String, Object> map2 =(JSONObject) value;
String itemUuid = (String) map2.get("deviceId");
String data2 = map2.get("parts").toString();
JSONArray jsonArr1 = JSONArray.parseArray(data2);
if (jsonArr1.size() > 0) {
for (Object o : jsonArr1) {
Map<String, Object> map1 = (JSONObject) o;
String partsId = (String) map1.get("partsId");
String quantity = map1.get("quantity").toString();
System.out.println(partsId);
System.out.println(quantity);
}
}
System.out.println(itemUuid);
}
}
resultBean.setCode(0);
resultBean.setMsg("操作成功!");
return resultBean;
}
打印结果:
总结,写代码还是要信息,现在的还不够严谨,明天在往细致里做一下。
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
4 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)