使用 postman 从 json 文件中获取正确的数据
Fetch correct data from json file with postman
我目前是运行邮递员,
我也做了以下测试:
pm.test("Addition", function () {
pm.expect(pm.response.text()).to.include("Sture");
});
pm.test("amount", function () {
pm.expect(pm.response.text()).to.include("60");
});
(请参阅下面我的 json 文件)
[
{
"MyList": "BeforeCarl",
"MyListTotalAmount": "90,92",
"Mylist2":
[
{
"name": "Dennis",
"amount": "10,00"
},
{
"name": "Sture",
"amount": "60,00"
},
{
"name": "Anders",
"amount": "30,00"
}
]
},
{
"MyList": "",
"MyListTotalAmount": "40,00",
"Mylist2":
[
{
"name": "Nils",
"amount": "50,00",
"": ""
},
{
"name": "Helena",
"amount": "60,00"
},
{
"name": "Lena",
"amount": "60,00"
},
{
"name": "Stina",
"amount": "50,00"
}
]
},
{
"MyList": "Lars",
"MyListTotalAmount": "10,00",
"MyList2":
[
{
"name": "Sten",
"amount": "50,00"
},
{
"name": "Stig",
"amount": "30,00"
}
]
}
]
我现在的问题是我想获取:
{
"name": "Helena",
"amount": "60,00"
},
我的代码做错的是:
1。它创建前 2 个测试(没有必要)
2。每个获取的字符串都可以在 JSON.
中的任何位置
我希望代码只检查片段:
{
"name": "Helena",
"amount": "60,00"
}
有人可以帮我解决吗?
提前致谢。
嗯,
如果你想针对一段代码,你可以解析你的 JSON 响应(顺便说一句,当心标志,你混合使用 MyList2 和 Mylist2 (小写 'l')=> 我重命名所有在 Mylist2.
当您解析 JSON 正文时,如下例所示,您可以检查值...我不熟悉 pm.expect 用法,所以我使用 'old'方式,但您可以轻松转换它:
var jsonData = JSON.parse(responseBody);
console.log("json = " + jsonData)
for (i=0; i< jsonData.length;i++){
console.log("json[i] = " + jsonData[i].Mylist2[0].name)
console.log("json[i].length = " + jsonData[i].Mylist2.length)
for(j=0;j<jsonData[i].Mylist2.length;j++)
{
console.log(" json[i].mylist = " + jsonData[i].Mylist2[j].name)
if(jsonData[i].Mylist2[j].name == 'Helena')
{
tests["Helena amount 60 ?"] = jsonData[i].Mylist2[j].amount == '60,00'
}
}
}
我放了很多控制台输出所以你可以看到发生了什么......测试[...]相当于pm.expect。
我目前是运行邮递员, 我也做了以下测试:
pm.test("Addition", function () {
pm.expect(pm.response.text()).to.include("Sture");
});
pm.test("amount", function () {
pm.expect(pm.response.text()).to.include("60");
});
(请参阅下面我的 json 文件)
[
{
"MyList": "BeforeCarl",
"MyListTotalAmount": "90,92",
"Mylist2":
[
{
"name": "Dennis",
"amount": "10,00"
},
{
"name": "Sture",
"amount": "60,00"
},
{
"name": "Anders",
"amount": "30,00"
}
]
},
{
"MyList": "",
"MyListTotalAmount": "40,00",
"Mylist2":
[
{
"name": "Nils",
"amount": "50,00",
"": ""
},
{
"name": "Helena",
"amount": "60,00"
},
{
"name": "Lena",
"amount": "60,00"
},
{
"name": "Stina",
"amount": "50,00"
}
]
},
{
"MyList": "Lars",
"MyListTotalAmount": "10,00",
"MyList2":
[
{
"name": "Sten",
"amount": "50,00"
},
{
"name": "Stig",
"amount": "30,00"
}
]
}
]
我现在的问题是我想获取:
{
"name": "Helena",
"amount": "60,00"
},
我的代码做错的是:
1。它创建前 2 个测试(没有必要)
2。每个获取的字符串都可以在 JSON.
我希望代码只检查片段:
{
"name": "Helena",
"amount": "60,00"
}
有人可以帮我解决吗?
提前致谢。
嗯, 如果你想针对一段代码,你可以解析你的 JSON 响应(顺便说一句,当心标志,你混合使用 MyList2 和 Mylist2 (小写 'l')=> 我重命名所有在 Mylist2.
当您解析 JSON 正文时,如下例所示,您可以检查值...我不熟悉 pm.expect 用法,所以我使用 'old'方式,但您可以轻松转换它:
var jsonData = JSON.parse(responseBody);
console.log("json = " + jsonData)
for (i=0; i< jsonData.length;i++){
console.log("json[i] = " + jsonData[i].Mylist2[0].name)
console.log("json[i].length = " + jsonData[i].Mylist2.length)
for(j=0;j<jsonData[i].Mylist2.length;j++)
{
console.log(" json[i].mylist = " + jsonData[i].Mylist2[j].name)
if(jsonData[i].Mylist2[j].name == 'Helena')
{
tests["Helena amount 60 ?"] = jsonData[i].Mylist2[j].amount == '60,00'
}
}
}
我放了很多控制台输出所以你可以看到发生了什么......测试[...]相当于pm.expect。