如何通过JSONPath获取符合条件的数组项中的单个Lossyear值?
如何从JSONPath筛选结果中获取单个值?
现有如下LossHistory JSON数据:
{"LossHistory": { "LossDetails": [ { "LineOfBusinessCode": "General Liab - Excess", "Lossyear": 2018, "NumberOfTotalClaims": 8, "PaidLosses": 500, "PaidExpense": 80000, "Outstandingreserve": 800, "TotalIncurred": 800, "valuationDate": "2023-12-06T00:00:00", "LargeClaim": 700, "NumberOfOpenClaims": 6, "carrierName": "Hrst", "ClaimSource": "Manual" }, { "LineOfBusinessCode": "General Liab - Excess", "Lossyear": 2019, "NumberOfTotalClaims": 8, "PaidLosses": 500, "PaidExpense": 80000, "Outstandingreserve": 800, "TotalIncurred": 800, "valuationDate": "2023-12-06T00:00:00", "LargeClaim": 700, "NumberOfOpenClaims": 6, "carrierName": "Hrst", "ClaimSource": "Manual" }, { "LineOfBusinessCode": "Auto", "Lossyear": 2018, "NumberOfTotalClaims": 8, "PaidLosses": 500, "PaidExpense": 80000, "Outstandingreserve": 800, "TotalIncurred": 800, "valuationDate": "2023-12-06T00:00:00", "LargeClaim": 700, "NumberOfOpenClaims": 6, "carrierName": "Hrst", "ClaimSource": "Manual" } ] }}
使用JSONPath表达式:
$..LossDetails[?(@.LineOfBusinessCode == 'General Liab - Excess')].Lossyear
得到的结果是一个数组:
[ 2018, 2019 ]
若要获取数组中的单个值(比如第一个元素2018),只需在原JSONPath表达式末尾添加索引下标即可,数组下标从0开始计数。
修改后的JSONPath表达式:
$..LossDetails[?(@.LineOfBusinessCode == 'General Liab - Excess')].Lossyear[0]
执行后将得到单个值:
2018
如果需要获取第二个值2019,只需把下标改为[1]即可。
内容的提问来源于stack exchange,提问作者Rajesh Senapati
相关产品推荐
相关产品推荐

