beanshell处理返回信息01

接口返回信息如下

{
    "responseCode": "200",
    "message": "success",
    "data": {
        "oneCallPriceFlag": "true",
        "solutionDesc": "主板故障,去高级维修中心维修主板",
        "solutionCode": "SP123123",
        "skuCode": "123456ABC"
        "solutionDescEn": "0716:新增1个服务",
        "repairPlans": [{
                "code": "RT04",
                "name": "人为损转保修"
            },
            {
                "code": "RT05",
                "name": "保外维修"
            }
        ],
        "solutionType": {
            "solutionTypeCode": "REPAIR",
            "name": "维修类"
        },
        "repairMode": {
            "repairModeCode": "BACK_FACTORY",
            "name": "返厂维修"
        }
    }
}

把solutionCode和solutionTypeCode用分号分隔拼接写入D:\Temp\data3.csv文件中,beanshell代码如下

import org.json.*;
String response_data = prev.getResponseDataAsString(); //获取请求返回值。注意此处只能获取到String类型;
log.info(response_data);
JSONObject data_obj = new JSONObject(response_data).get("data"); //将String类型的返回值构造成JSONObject对象,才可使用Java对象的方法对其进行操作;
String solutionCode = data_obj.get("solutionCode").toString(); //获取data.solutionCode;
String solutionTypeCode = data_obj.get("solutionType").get("solutionTypeCode").toString(); 
log.info(solutionCode); //Log中显示的字段顺序会与“response_data”中的字段顺序有差异,JSON串的正确与否无关字段顺序;
FileWrite fstream = new FileWrite("D:\\Temp\\data3.csv",true);
BufferedWrite out = new BufferedWrite(fstream);
out.write(solutionCode+";"+solutionTypeCode);
out.close();
fstream.close();

 

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