beanshell处理返回信息03

接口返回信息如下

{
    "code": "200",
    "message": "success",
    "data": {
        "info": {
            "country": "CN",
            "gender": "male",
            "city": "CN-44-003",
            "name": "zhangsan",
            "telephone": "13888888888",
            "email": null
        },
        "device": {
            "itemCode": "147258DFG",
            "skuItemCode": "1478QWE",
            "skuName": "HUAWEI P30 8GB+128GB 天空之境 双卡 全网通版",
            "repairMode": {
                "repairModeCode": "BACK_FACTORY",
                "name": "返厂维修"
                },
            "solutionBaseInfo": {
                    "deliveryMode": "上门维修",
                    "solutionName": "保外换主板",
                    "servicePrivileges": null,
                    "acceptChannels": [
                        {
                            "code": "200000000",
                            "name": "预约"
                        },
                        {
                            "code": "300000001",
                            "name": "直接到店"
                        }
                    ],
                    "quotationType": {
                        "code": "SPARE_PARTS",
                        "name": "备件类"
                    }
            }
        }
    }
}

如果把repairMode改成repairInfo,其他信息不变。beanshell代码如下

    import org.json.*;
    String response_data = prev.getResponseDataAsString(); //获取请求返回值。注意此处只能获取到String类型;
    JSONObject data_obj = new JSONObject(response_data).get("data"); //将String类型的返回值构造成JSONObject对象,才可使用Java对象的方法对其进行操作;
    JSONObject device_obj = (JSONObject)data_obj.get("device");
    JSONObject repairInfo_obj = new JSONObject();
    repairInfo_obj.put("repairModeCode","BACK_FACTORY");
    repairInfo_obj.put("name","返厂维修");
    device_obj.put("repairInfo", repairInfo_obj);
    device_obj.remove("repairMode");
    String newResponseData = data_obj.toString();
    vars.put("newResponseData", newResponseData);

 

posted @ 2025-03-27 22:42  李源棠  阅读(13)  评论(0)    收藏  举报