【问题标题】:How to select an element which has () in it using JSON如何使用 JSON 选择其中包含 () 的元素
【发布时间】:2019-08-12 10:22:19
【问题描述】:

我将 RestAssured 用于 API 自动化,作为其中的一部分,我必须从 JSON 响应中提取一个值。

JSON 响应如下

    {
"resourceName": "SERVICE_STATUS",
"records": [
    {
        "CREATED_DTTM": "2019-08-12T05:58:12.940Z",
        "STATUS": "SUCCESS",
        "SERVICE_EXECUTION_ID": "e760bed8-2ebb-4563-9812-7c0e5ed565cf",
        "OUTPUT_FILE(S)": [
            "FileC_FileA.csv"
        ],
        "SERVICE_ID": "EXCEL2CSV"
    }
],
"status": "SUCCESS"

}

我必须从响应中提取值“FileC_FileA.csv”,但是当我通过 Json Path 执行此操作时,它会失败,因为“()”在 json 路径中具有特殊含义。

    JsonPath js1 = new JsonPath(statusrespstring);
    String outputfile = js1.get("OUTPUT_FILE(S)"); -----> This is failing

我尝试过使用

    String outputfile = js1.get("OUTPUT_FILE"+"("+"S"+")");
    String outputfile = js1.get('OUTPUT_FILE(S)');

但是得到错误 :使用了参数“S”但未定义。使用 JsonPath.params(...) 函数定义参数

请大神帮忙,如何选择一个关键参数有 () 的值。

【问题讨论】:

    标签: jsonpath


    【解决方案1】:

    我找到了解决方案。

        ArrayList<String> outputfile = js1.get("records[0].'OUTPUT_FILE(S)'");
    

    如果属性有特殊字符,那么用单引号括起来会起作用。

    参考:https://support.smartbear.com/alertsite/docs/monitors/api/endpoint/jsonpath.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 2020-05-27
      • 1970-01-01
      • 2018-02-13
      • 1970-01-01
      • 1970-01-01
      • 2012-04-27
      相关资源
      最近更新 更多