jmeter 需要从JSON响应中提取值,而不是从花括号开始

wnavrhmk  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(95)

我从请求中得到了下面的JSON响应。我知道如何使用JSON Extractor从响应中提取值,但这里我有不同的JSON响应,没有声明花括号,它从字符串开始OK。我尝试了JSON运算符,但没有得到任何结果。我想从这个响应中提取值14869。

OK
[
    [
        [
            14869,
            8708,
            5032,
            463863,
            "AssignmentCardLearning",
            "{\"type\": \"AssignmentCardRefreshDone\", \"value\": {\"byEducator\": true}}",
            "{\"openTime\": 1701326839556, \"finishTime\": 1701326994605, \"postponeData\": null, \"lastTimeOpened\": 1702469689831, \"lastTimeOpenedBy\": {\"type\": \"AssignmentCardOpenedByUser\", \"value\": {}}, \"availabilityDatesM\": null, \"previousFinishTime\": null}",
            "{\"tags\": [{\"type\": \"AssignmentCardGracePeriodNotified\", \"value\": {\"closed\": false}}], \"loIds\": [], \"language\": null, \"practiceSetLOs\": [], \"packageTopicsIds\": [5032]}",
            0,
            "2023-11-30 06:47:14",
            0,
            0,
            0
        ]
    ]
]

字符串

nr9pn0ug

nr9pn0ug1#

JSON也可以开始为[,如果是JSON Array
在您的情况下,您可以通过两个步骤来完成:
1.通过添加JSR223 PostProcessor并在其中使用以下Groovy代码来删除包含OK的这一行:

prev.setResponseData(prev.getResponseDataAsString().substring(prev.getResponseDataAsString().indexOf('[')),'UTF-8')

字符串
1.完成后,您应该能够使用JSON提取器和以下JSONPath查询:

$[0][0][0]


演示:


的数据

相关问题