[
{
"Key": "A",
"Value": "直升機"
},
{
"Key": "B",
"Value": "飛機"
}
,
{
"Key": "C",
"Value": "CCCC"
}
,
{
"Key": "D",
"Value": "DDD"
}
]
請問此json結構外面是一個陣列
const jsonData=pm.response.json();
console.log(jsonData[0]); ->會顯示 {key:"A",value:"直升機"}
能不能直接只顯示 key:"A" 這樣?
有沒有語法可以檢查 Key"A" 對應的Value值一定是"直升機" 這樣?
謝謝各位回答! 了解了
參考看看
for(var i = 0; i < jsonData.length; i++) {
var obj = jsonData[i];
console.log(obj.Key, obj.Value);
}
另外
在const jsonData=pm.response.json();
之後
跟 postman 已經沒什麼關係了
Q: 能不能直接只顯示 key:"A" 這樣?
console.log('key:'+jsonData[0].key);
Q: 有沒有語法可以檢查 Key"A" 對應的Value值一定是"直升機" 這樣?
let returnData = jsonData.find( element => {
return (element.key === 'A' && element.value === '直升機')
)};
if(returnData !== undefined)
console.log(returnData); // {key:"A",value:"直升機"}
雖然看你都能log出來,資料解析應該沒有問題
如果對jsonData[0]
取.key
會有問題的話,可以試試看const jsonData=JSON.parse(pm.response.body);
另外如海綿大大所說,你的問題屬於JsonArray處理,跟postman沒甚麼關係
上面大佬說了,這跟POSTMAN無關。
您的資料格式原本就是這樣。
要表現成你想要的樣子,你是需要做轉換處理的的。
我記得JAVASCRIPT沒有可以直接將KEY值對應值的函式轉換的做法。
早期我的做法是用
function objToJsonKey(obj, indexKey='key') {
let json = [];
obj = Object.values(obj);
obj.forEach((value, i) => {
json[value[indexKey]] = value;
});
return json;
}
來處理我將值帶入KEY的方式。
預設值為KEY的名字。但有時我需要的是可能某個ID
所以我是設計成可更換對應KEY的方式。並將其化為函式處理
給你參考用。
const array1 = [
{
"Key": "A",
"Value": "直升機"
},
{
"Key": "A",
"Value": "直升機1"
},
{
"Key": "B",
"Value": "飛機"
}
,
{
"Key": "C",
"Value": "CCCC"
}
,
{
"Key": "D",
"Value": "DDD"
}
];
const found = array1
.filter(i => i.Key !== "A" || (i.Value == '直升機' && i.Key == "A"))
.map(i => `Key:${i.Key}`)