【问题标题】:How do i get a specific data from responseBody on postman我如何从邮递员的 responseBody 获取特定数据
【发布时间】:2021-04-15 16:04:37
【问题描述】:

我正在尝试使用以下设置环境变量:

var data = JSON.parse(responseBody);   
pm.environment.set("petId", data.id);

这就是我的回复:

{
    "id": 9222999990497629102,
    "category": {
        "id": 0,
        "name": "dog"
    },
    "name": "Brutus",
    "photoUrls": [
        "http://placeimg.com/640/480"
    ],
    "tags": [
        {
            "id": 0,
            "name": "string"
        }
    ],
    "status": "available"
}

但不知何故,我的环境看起来像这样:

"petId": "9222999990497629000" 

我不知道从哪里获得变量上的最后一个零。

【问题讨论】:

    标签: json postman


    【解决方案1】:
    pm.environment.set("petId", JSON.parse(pm.response.text().replace(/"id":[\s]*([\d]+),/,'"id":"$1",')).id);
    

    由于 id 是一个大于 MAX_SAFE_Integer 的大整数,因此在解析为 JSON 时,响应将被四舍五入。这是一种 javascript 行为。

    你可以用双引号括起来。之后提取该 ID。

    现在如果您想将 id 转换为数字,请使用 BigInt

    let id = JSON.parse(pm.response.text().replace(/"id":[\s]*([\d]+),/,'"id":"$1",')).id
    
    id = BigInt(id)
    
    console.log(id)
    

    参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt

    【讨论】:

      猜你喜欢
      • 2020-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-25
      • 1970-01-01
      • 1970-01-01
      • 2016-07-11
      相关资源
      最近更新 更多