Parse JSON Postman response

前端 未结 3 1605
耶瑟儿~
耶瑟儿~ 2021-01-05 10:23

I have a test in Postman where I do a post request and need to parse the json response

The response looks like this:

\"aPIProxy\" : [ {
    \"name\"          


        
相关标签:
3条回答
  • 2021-01-05 11:07

    The below postman script might help you.

    var jsonData = JSON.parse(responseBody);
    var jsonNamesData = jsonData.aPIProxy;
    console.log(jsonNamesData);
    var parsedData = "";
    for(var i=0;i<jsonNamesData.length;i++){
        parsedData = parsedData +"\"name\" : \"" +jsonNamesData[i].name+"\", ";
        console.log("\"name\" : \"" +jsonNamesData[i].name+"\"");
    }
    console.log(parsedData);
    postman.setEnvironmentVariable("parsedNamesResponse", parsedData); // updating parsed data to the environment variable parsedNamesResponse
    
    0 讨论(0)
  • 2021-01-05 11:07

    You should first parse the response using JSON.parse, then you can iterate on the parsed object like:

    var resObj = JSON.parse(pm.response.text())
    for(var i=0; i< resObj.length; i++) {
        console.log("name: "+ resObj[i].name);
    }
    
    0 讨论(0)
  • 2021-01-05 11:21

    You could capture multiple 'name' properties using the _.map() function of Lodash, which is a built it module on the native application. I've had to modify what you need slightly as the name key would have been a duplicate.

    const result = _.map(pm.response.json().aPIProxy, data => ({
      name: data.name,
      revisionName: data.revision[0].name
    }))
    
    pm.environment.set("response", JSON.stringify(result))
    

    This would then store all the values in an environment variable for you to use elsewhere in another request.

    0 讨论(0)
提交回复
热议问题