2017-07-11 1 views
0

マイポストマンのレスポンスボディはこれです:私がやりたい何検索配列と環境変数の設定

{ 
"jobs": [ 
    { 
     "id": "00d21be0", 
     "name": "IT Department" 
    }, 
    { 
     "id": "h27da349", 
     "name": "Car Sales" 
    }, 
    { 
     "id": "5d2db4125", 
     "name": "Grocery Clerk" 
    }, 
    { 
     "id": "65cd0cc1d", 
     "name": "Accounting Department" 
    }, 
    { 
     "id": "8462284587", 
     "name": "Nurse" 
    }, 
    { 
     "id": "9fe2ff9ee4", 
     "name": "Astronaut" 
    }, 
    { 
     "id": "f40cb44799", 
     "name": "Phone Operator" 
    }, 
    { 
     "id": "f4e0483257", 
     "name": "Project Leader" 
    } 
] 

}

この応答を解析し、看護師に関連付けられたIDのための環境変数を設定し、宇宙飛行士であります、食料品店員。残りの情報は必要ありません。私は配列[number]を使うことはできません。なぜなら、それらが他のシステムで同じ順序で来ることを保証するものではないからです。

JSON.stringifyレスポンスボディを使用する方法はありますか?これらの値をどのように取得するのですか?

マイポストマンのテストはこれまでのところです:

var jsonData = JSON.parse(responseBody); 
postman.setEnvironmentalVariable("jobs", JSON.stringify(jsonData)); 

答えて

0

何ができるかは、ループを使用してJSON本体を解析し、あなたが欲しい名前を打ったとき、あなたは、対応するIDを持つグローバル変数を設定していますlike:

// get the response body 
var jsonData = JSON.parse(responseBody); 
// init counter 
var loop_count = 0 

for (count = 0; count < jsonData.jobs.length; count++) 
{ 
    if (jsonData.jobs[count].name == "Nurse") 
    { 
     var job_id = jsonData.jobs[count].id; 
     postman.setEnvironmentalVariable("env_nurse", job_id); 
    } 
} 

これが原則です。

キャッチしたい別の名前の場合は/ ifを実行できますが、簡単に展開できる配列を使用することをお勧めしません。

同じこと、環境変数名のために、代わりにハードコーディングで、あなたの要素名に関して、それを生成しよう...

アレクサンドル

+0

はありがとうございました。これは機能しています。私は別の質問をしています。 var loop_countがインデントされているのはなぜですか? – Showdown2976

+0

そのタイプミス、申し訳ありません...それを修正;) –