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