Creating separate jsons

Hi Snaplogic experts,

i would like to ask you if there is chance to create from Json like this:

{
"CompanyName": "TestCompany",
"CompanyAddress": "TestAddress",
"CarDetails": [
 {"Brand": "BMW", "Year": "2020", "Fuel": "Petrol"},
 {"Brand": "Jaguar", "Year": "2020", "Fuel": "Diesel"},
 {"Brand": "GMC", "Year": "2019", "Fuel": "Petrol"}
]
}

three jsons like this:

{
  "CompanyName": "TestCompany",
  "CompanyAddress": "TestAddress",
  "Brand": "BMW",
  "Year": "2020",
  "Fuel": "Petrol"
}
,
{
  "CompanyName": "TestCompany",
  "CompanyAddress": "TestAddress",
  "Brand": "Jaguar",
  "Year": "2020",
  "Fuel": "Diesel"
}

it means “CompanyName”: “TestCompany” and “CompanyAddress”: “TestAddress” will be something like header for all jsons and Car details will be added to them. If yes, how to do it ? do i need separate route in order to get ‘header’ and second for Car details and then concat them somehow? do i need to use child pipeline as for each action? thank you

Hi @SL12345,

Just use a JSON Splitter and split on $CarDetails array, but make sure you have enabled “Include scalar parents” option in the JSON Splitter.

image

Result:

thank you, that is really what i wanted :slight_smile: and is it possible to wrap this content into object so from this:

{
  "CompanyName": "TestCompany",
  "CompanyAddress": "TestAddress",
  "Brand": "BMW",
  "Year": "2020",
  "Fuel": "Petrol"
}
,
{
  "CompanyName": "TestCompany",
  "CompanyAddress": "TestAddress",
  "Brand": "Jaguar",
  "Year": "2020",
  "Fuel": "Diesel"
}

create this? Adding “Cars” as header or envelope for body/content?

{
	"Cars":
{
  "CompanyName": "TestCompany",
  "CompanyAddress": "TestAddress",
  "Brand": "BMW",
  "Year": "2020",
  "Fuel": "Petrol"
}
,
{
  "CompanyName": "TestCompany",
  "CompanyAddress": "TestAddress",
  "Brand": "Jaguar",
  "Year": "2020",
  "Fuel": "Diesel"
}
}

Hi @SL12345 ,

Have you tried putting a groupByN snap behind it and as target field $Cars.

Regards

Jens

I need to correct my question … every JSON should have header “Cars”

{
	"Cars":
{
  "CompanyName": "TestCompany",
  "CompanyAddress": "TestAddress",
  "Brand": "BMW",
  "Year": "2020",
  "Fuel": "Petrol"
}
,
{
  "Cars" :
{
  "CompanyName": "TestCompany",
  "CompanyAddress": "TestAddress",
  "Brand": "Jaguar",
  "Year": "2020",
  "Fuel": "Diesel"
}
}

Hi @SL12345 ,

you can put a mapper snap next to it with this configuration. It will give Cars to every object.