【问题标题】:How to extract and parse id from below mentioned response如何从下面提到的响应中提取和解析 id
【发布时间】:2021-01-14 14:09:27
【问题描述】:

参考截图:

{
    "urn:pearson:work:876fa82c-9ad7-49c3-80c9-02d3b4c84312": {
        "id": "urn:pearson:work:876fa82c-9ad7-49c3-80c9-02d3b4c84312",
        "type": "element-authoredtext",
        "schema": "http://schemas.pearson.com/wip-authoring/element/1",
        "elementdata": {

这不起作用:

var jsonData = pm.response.json();
pm.environment.set("id", jsonData.id);

【问题讨论】:

标签: testing automation environment-variables postman web-api-testing


【解决方案1】:
var jsonData = pm.response.json();
pm.environment.set("id", jsonData["urn:pearson:work:876fa82c-9ad7-49c3-80c9-02d3b4c84312"].id);

JsonData 将有完整的响应,ID 在“urn:pearson:work:876fa82c-9ad7-49c3-80c9-02d3b4c84312”字段内。

因为它有特殊字符,你应该把它称为 json[key] ,那么下一个键是 id 可以称为 json.id,因为它没有任何特殊字符

更新

for dynamic value use:

var jsonData = pm.response.json();
pm.environment.set("id", jsonData[Object.keys(jsonData)[0]].id);

上面会选择第一个属性,但是如果你想确保它是正确的,那么使用 array.find():

let jsonData = pm.response.json();
let prop = Object.keys(jsonData)
prop = prop.find(element => element.includes("urn:pearson:work"))
pm.environment.set("id", jsonData[prop].id);

【讨论】:

  • 我们无法解析硬编码值,因为这个 id 是动态的,每次我们点击 api 时都会改变
  • @SunnyGoel jsonData[Object.keys(jsonData)[0]].id 使用这个更新了答案
  • 您可以通过点击对勾来接受答案
猜你喜欢
  • 2021-03-25
  • 2014-01-29
  • 1970-01-01
  • 1970-01-01
  • 2020-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多