JMeter提取複雜Json字串

問題描述

有這樣的一個json 字串:

{
    "msg": null,
    "flag": "S",
    "code": null,
    "data": {
        "loanList": [
            {
                "loanNo": "7708778571",
                "loanStateDesc": "還款中",
                "loanState": "RP",
                "loanAmt": "500.00"
            },
            {
                "loanNo": "7708778572",
                "loanStateDesc": "還款中",
                "loanState": "RP",
                "loanAmt": "500.00"
            },
			{
                "loanNo": "7708778573",
                "loanStateDesc": "還款中",
                "loanState": "RP",
                "loanAmt": "500.00"
            },
            {
                "loanNo": "7702890246",
                "loanStateDesc": "已還清",
                "loanState": "FP",
                "loanAmt": "500.00"
            }
        ]
    },
    "class": "demo.test.domain.Response"
}

我需要提取出來loanState爲RP的LoanNo,不能簡單的通過json 提取器來獲取,但可以在json 提取器裏使用JsonPath 提取,類似下面寫法;

在這裏插入圖片描述
$.data.loanList[?(@.loanState==“RP”)].loanNo ,其中:[?()] 爲過濾器表達式,結果是boolean類型。
還有另一種方式,通過fastjson來解決,需要下載第三方jar包,在beanshell後置處理器中寫代碼如下:

import com.alibaba.fastjson.*;

//獲取從上一個請求返回的數據
String rspData = prev.getResponseDataAsString();
//把從結果中得到的json數據轉成json對象
JSONObject dataObj = JSONObject.parseObject(rspData);

//因爲 loanList 是在data中,所以還要得到data對象
JSONObject jsonData = dataObj.getJSONObject("data");

//data對象的loanList轉成json 數組
JSONArray loanLists = jsonData.getJSONArray("loanList");

//通過for循環得到數組的中的對象,然後根據屬性得到相應的值
JSONObject loanObject;
String loanNo = null ;
String loanState = null;
String loanAmt= null;
for (int i = 0; i < loanLists.size(); i++) {
	loanObject = (JSONObject) loanLists.get(i);
	loanState = loanObject.getString("loanState");
	if (loanState.equals("RP")) {
		loanNo = loanObject.getString("loanNo");
		loanAmt = loanObject.getString("loanAmt");
		break;
	}
}
//log.info("----------------------------------------" + loanNo);		
vars.put("RPLoanNo",loanNo);
vars.put("RPLoanAmt",loanAmt);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章