PostMan传json以及后端接收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,图片如下:
PostMan传json以及后端接收json方式方法_第1张图片PostMan传json以及后端接收json方式方法_第2张图片

后端解析代码:
 public ResultBean partReceive(@RequestBody String str) {
        ResultBean 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 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 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;
    }
 
  

打印结果:
PostMan传json以及后端接收json方式方法_第3张图片
总结,写代码还是要信息,现在的还不够严谨,明天在往细致里做一下。

你可能感兴趣的:(分享,postman传json,前端传json,后端接收json,后端json解析)