首页 > 解决方案 > 使用 json 解析器或正则表达式从 JSON 中提取值

问题描述

我有以下 JSON:

{
    "c": {
        "21969": {
            "name": "TC",
            "status": "completed",
            "result": {
                "count": 421
            },
            "identifier": "column1"
        }
    },
    "analyses": {
        "1": {
            "name": "test",
            "status": "completed",
            "result": {
                "21969": {
                    "status": "completed",
                    "result": {
                        "columnDefs": [{
                            "headerName": "RD",
                            "field": "d_c"
                        }, {
                            "headerName": "LN",
                            "field": "l_n"
                        }, {
                            "headerName": "Count",
                            "field": "count"
                        }, {
                            "headerName": "% ",
                            "field": "percent"
                        },  {
                            "headerName": "os",
                            "field": "os"
                        }],
                        "rowData": [{
                            "d_c": "Total",
                            "line_number": 1,
                            "count": 869,
                            "sub_header": true
                        }, {
                            "d_c": "test01",
                            "l_n": "1",
                            "count": 356,
                            "percent": "40.97 %",
                            "os": "17.45"
                        }, {
                            "drug_combo": "test02",
                            "l_n": "2",
                            "count": 61,
                            "percent": "7.02 %",
                            "os": "29.75 (22.88 - 42.48)"
                        }
                         ]
                    }
                }
            }
        }
    }
    
}

我想获取仅存在于这两个块中的计数值:

{
                            "d_c": "test01",
                            "l_n": "1",
                            "count": 356,
                            "percent": "40.97 %",
                            "os": "17.45"
                        }, {
                            "drug_combo": "test02",
                            "l_n": "2",
                            "count": 61,
                            "percent": "7.02 %",
                            "os": "29.75 (22.88 - 42.48)"
                        }]

例如,我已经尝试过$count.. ,但它给出了所有的计数值,例如 421,869,356,61,同样$l_n..给出了 1,1,2。预期结果: - 只想获取 356 和 61 进行计数。对于 l_n 只想获取 1,1。

谁可以帮我这个事?

标签: jsonregexjmeter

解决方案


由于您的响应包含多个名为“count”的节点,因此您必须更加精确。

在 JMeter 中,JSON 提取器允许您指定匹配号

如果 JSON 路径查询导致许多结果,您可以选择提取哪些作为变量

或者,类似的东西$.analyses..rowData[1].count应该给你“test01”的“计数”值。同样$.analyses..rowData[2].count应该给你“test02”的“计数”值。


推荐阅读