一、import
IMPORT JAVA com.alibaba.fastjson.JSONObject
IMPORT JAVA com.alibaba.fastjson.JSONArray
二、报文
LET l_str = '{
"Head": {
"Rqs_Jrnl_No": "56277bfa-73ca-4a26-8330-6a8b6169d689",
"Rsp_Dt": "20220624",
"Rsp_Tm": "152517606"
},
"Data": {
"transferDtl": {
"purpose": "",
"amt": "24",
"rcvName": "",
"remark": "",
"corpCode": "",
"errDesc": "交易成功",
"relationBankAcc": "",
"payType": "",
"payAcc": "",
"projectCode": "",
"billNo": "CZ2022062402363407",
"wishPayTime": "",
"subjectName": "",
"summary": "",
"subaAccountSerial": "",
"remarkField1": "",
"isTellRcv": "",
"list": [
{
"budgetMoney": "",
"itemCode": "777"
}
],
"remarkField2": "",
"isSubscribe": "",
"remarkField3": "",
"rcvAcc": "",
"serialNo": "2022062400000003",
"voucherNo": "7279835420220624",
"rcvBankNo": "",
"rcvMobile": "",
"projectName": "",
"rcvBankName": "",
"contractCode": "",
"status": "0"
},
"retCode": "0000",
"retMsg": "请求成功"
}
}'
三、函数解析
DEFINE l_str STRING
TYPE type_head RECORD
Rqs_Jrnl_No LIKE type_t.chr100
END RECORD
TYPE type_list RECORD
budgetMoney LIKE type_t.chr100,
itemCode LIKE type_t.chr100
END RECORD
TYPE type_transferDtl RECORD
purpose LIKE type_t.chr100,
list DYNAMIC ARRAY OF type_list
END RECORD
TYPE type_Data RECORD
transferDtl type_transferDtl
END RECORD
DEFINE l_param RECORD
Head type_head,
Data type_Data
END RECORD
DEFINE l_cnt LIKE type_t.num5
DEFINE l_json JSONObject
DEFINE l_json_data JSONObject
DEFINE l_json_tran JSONObject
DEFINE l_array JSONArray
DEFINE l_list STRING
DEFINE l_Data STRING
DEFINE l_tran STRING
LET l_json = JSONObject.parseObject(l_str)
LET l_Data = l_json.getString("Data")
LET l_json_data = JSONObject.parseObject(l_Data)
LET l_tran = l_json_data.getString("transferDtl")
LET l_json_tran = JSONObject.parseObject(l_tran)
LET l_array = l_json_tran.getJSONArray("list")
LET l_cnt = l_array.size() #数组长度