iT邦幫忙

1

取Json結構 語法詢問

  • 分享至 

  • xImage
[
    {
        "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值一定是"直升機" 這樣?

謝謝各位回答! 了解了

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
海綿寶寶
iT邦大神 1 級 ‧ 2021-02-26 11:13:36

參考看看

for(var i = 0; i < jsonData.length; i++) {
    var obj = jsonData[i];

    console.log(obj.Key, obj.Value);
}

另外
const jsonData=pm.response.json();之後
跟 postman 已經沒什麼關係了

0
微笑
iT邦研究生 5 級 ‧ 2021-02-26 13:52:36

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沒甚麼關係

Array.prototype.find()

JSON.parse()

chunwen iT邦新手 3 級 ‧ 2021-02-26 16:27:06 檢舉

學到嘞

3

上面大佬說了,這跟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的方式。並將其化為函式處理
給你參考用。

0
froce
iT邦大師 1 級 ‧ 2021-02-26 22:56:47
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}`)

我要發表回答

立即登入回答