Search code examples
automationpostmanpostman-collection-runnerpostman-testcase

I want to extract array from json file


i have json file with this data [ { “rolename”: “Number one”, “roledescription”: “Number one”, “rolepermission”: [“manage_users”,“view_user_logs”], “roletype”: “client”

} ]

i want to extract data from “rolepermission” and put it in body request this api accept data like this {

"role": {

"name": "Test",

"description": "Test",

"permissions": [

    "manage_users",

    "manage_role",

    "managing_custom_page"

],

"userType":"admin"

} } and i convert it to this to extract data from my json file {

"role": {

"name": "{{rolename}}",

"description": "{{roledescription}}",

"permissions": [

    "{{rolepermission}}"

],

"userType": "{{roletype}}"

} }

but he send request like this

“permissions”: [ “manage_users,view_user_logs” ],

instead it should send it like this “permissions”: [ “manage_users”, “view_user_logs” ],

what should i do


Solution

  • To save array data, you need stringify first which is mentioned here https://learning.postman.com/docs/sending-requests/variables/#understanding-variables

    const res = pm.response.json();
    const rolepermission = res.data[0].rolepermission;
    pm.environment.set("rolepermission", JSON.stringify(rolepermission));
    

    Use this variable in request body:

    {
      "role": {
        "name": "{{rolename}}",
        "description": "{{roledescription}}",
        "permissions": {{rolepermission}},
        "userType": "{{roletype}}"
      }
    }