cancel
Showing results for 
Search instead for 
Did you mean: 
Subscribe

Hi all,

Is there any way i can build an XML structure on SAP PI 7.5 and then convert it to JSON (using REST adapter) to generate this:

{  
   "Headers":[  
      "ID",
      "City",
      "Country"
   ],
   "Lines":[  
      [  
         12345,
         "NEWYORK",
         "USA"
      ],
      [  
         12346,
          "TORONTO",
         "CANADA"
      ],
      [  
         12347,
         "WASHINGTON",
         "USA"
      ]
   ]
}

this is the template of previous structure:

{  
   "Headers":[  
      "FieldName1",
      "FieldName2",
      "FieldName3"
   ],
   "Lines":[  
      [  
         FieldName1-Value1,
         FieldName2-"Value1",
         FieldName3-"Value1",
      ],
      [  
         FieldName1-Value2,
         FieldName2-"Value2",
         FieldName3-"Value2",
      ],
      [  
         FieldName1-Value3,
         FieldName2-"Value3",
         FieldName3-"Value3",
      ]
   ]
}

The problem is with the "Lines" structure. There is an array inside the array "Lines" but it has no name on it.

I was thinking to use JAVA mapping to generate it, but i prefer to use a standard way.

Thanks in advance.

0 Likes
View Entire Topic
Former Member
0 Likes

I already build a structure:

I paste the below XML to this Page: https://www.freeformatter.com/xml-to-json-converter.html#ad-output

<ns0:MT_API xmlns:ns0="http://test.com/API"><Headers><List>ID</List><List>City</List><List>Country</List></Headers><Lines><List><List>12345</List><List>NEWYORK</List><List>USA</List></List><List><List>12346</List><List>TORONTO</List><List>CANADA</List></List><List><List>12347</List><List>WASHINGTON</List><List>USA</List></List></Lines></ns0:MT_API>

and it converts the XML to the JSON i expected:

{
  "Headers": [
    "ID",
    "City",
    "Country"
  ],
  "Lines": [
    [
      "12345",
      "NEWYORK",
      "USA"
    ],
    [
      "12346",
      "TORONTO",
      "CANADA"
    ],
    [
      "12347",
      "WASHINGTON",
      "USA"
    ]
  ]
}

but when i run it on SAP PI, it returns:

{  
   "Headers":[  
      {  
         "List":[  
            "ExternalID",
            "City",
            "Country"
         ]
      }
   ],
   "Lines":[  
      {  
         "List":[  
            {  
               "List":[  
                  12345,
                  "MONTERREY",
                  "MEXICO"
               ]
            },
            {  
               "List":[  
                  12346,
                  "GUADALAJARA",
                  "MEXICO"
               ]
            },
            {  
               "List":[  
                  12347,
                  "CDMX",
                  "MEXICO"
               ]
            }
         ]
      }
   ]
}

how can I remove the "List" tag?