Forum Discussion

SL12345's avatar
SL12345
New Contributor III
4 years ago
Solved

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.

    Result:

5 Replies

  • 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.

    Result:

    • SL12345's avatar
      SL12345
      New Contributor III

      thank you, that is really what i wanted 🙂 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"
      }
      }
      
      • JensDeveloper's avatar
        JensDeveloper
        Contributor II

        Hi @SL12345 ,

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

        Regards

        Jens