How can I target nested objects from a JSON data file?

Hey,
I’ve always used CSVs and want to experiment using JSON files in the collection runner.
Given I have the below JSON data file

[
    {
        "email": "test@test.com",
        "address": {
            "addressLine1": "123 Fake Street",
            "county": "Something",
            "postcode": "BA11 4PM"
        }
    }
]

And I want to use the data file in my POST body each iteration (I know, I only have one object so it’ll iterate once which is fine for now)
So the raw JSON data that will be posted to the endpoint will be:

[
    {
        "email": "test@test.com",
        "address": {
            "addressLine1": "{{address.addressLine1}}",
            "county": "Something",
            "postcode": "BA11 4PM"
        }
    }
]

“{{address.addressLine1}}” is literally sent to the server instead of the revelent value in the JSON data file, I’m expecting it to be “123 Fake Street”

Am I missing something stupidly obvious here?

Argh! Looks like this is not something Postman can do??
:frowning:

1 Like

Yeah. Nested JSON structures are not supported right now.

Is there any progress on this issue?
I can see some changes mades to the feature request in Github

@abhinav

Any idea if this functionality has been added in the last few years? From the things I’m trying, it appears that nested JSON in external files still doesn’t work - but I might be missing something.

Do you know of any way to bring nested JSON in from an external file maybe as one big string and then parse it in a pre-req script?

I figured out a way to do this:

  • in your input JSON file, add a parent object that contains all of your nested JSON
  • create a local variable from the nested JSON in the data file in the pre-request: var inputJSONdata = pm.iterationData.get(“parentObject”);
  • create a stringified environmental variable: pm.environment.set(“envInputJSONdata”,JSON.stringify(inputJSONdata));
  • now you can work with the nested elements of that - for instance, you can populate the request body with the entire variable by putting {{envInputJSONdata}} in the Body
3 Likes

This response saved me so much of heartache an pain.
Thank you for this.

1 Like

Hi, I have the exact same requirement. I am not able to follow your steps. Can you help me how to read the nested json from file . This is how actual JSON looks like in request.

Highlighted in bold is the section that I need to read from the JSON file.

[
{
    "type": "report",
    "config": {
        "reportId": "6d45744b-2fb4-46b1-8ffb-bad96793bc99",
        "outputFormat": "PDF"
    },
    **"Selections": [**
**        {**
**            "FieldName": "FilterBusinessPartyId",**
**            "SelectedCount": 2,**
**            "SelectedValues": [**
**                "100046760",**
**                "100064485"**
**            ],**
**            "IsNumeric": true**
**        },**
**        {**
**            "FieldName": "ChildDivisions",**
**            "SelectedCount": 1,**
**            "SelectedValues": ["All Divisions"],**
**            "IsNumeric": false**
**        }**
**    ]**
	,
    "connectionId": "b5e1b49e-3539-45f4-8c98-26e1be0fdf93"
}
]