Skip to main content

I have an xml input where an element is repeated and I want to convert it to application/java and map that repeated elements to object.

 

input xml

<Orders>

<Idoc>

<Employee>

<name>test1</name>

<id>1</id>

</Employee>

<Employee>

<name>test2</name>

<id>2</id>

</Employee>

</Idoc>

</Orders>

 

output application/java

{

"Message":{

"Employee_data":{

"Details":[{

"Employee":{

"nameData": "Test",

"idData": 1

},

"Employee":{

"nameData": "Test2",

"idData": 2

}

}

]

}

}

}

In Preview I can see like

{

 Message: {

  Employee_data: {

   Details: [

    {

     Employee: [

      {

       nameData: "test1" as String {class: "java.lang.String"},

       idData: "1" as String {class: "java.lang.String"}

      } as Object {class: "java.util.LinkedHashMap"}, 

      {

       nameData: "test2" as String {class: "java.lang.String"},

       idData: "2" as String {class: "java.lang.String"}

      } as Object {class: "java.util.LinkedHashMap"}, 

      {

       nameData: "test3" as String {class: "java.lang.String"},

       idData: "3" as String {class: "java.lang.String"}

      } as Object {class: "java.util.LinkedHashMap"}, 

      {

       nameData: "test4" as String {class: "java.lang.String"},

       idData: "4" as String {class: "java.lang.String"}

      } as Object {class: "java.util.LinkedHashMap"}

     ] as Array {class: "java.util.ArrayList"}

    } as Object {class: "java.util.LinkedHashMap"}

   ] as Array {class: "java.util.ArrayList"}

  } as Object {class: "java.util.LinkedHashMap"}

 } as Object {class: "java.util.LinkedHashMap"}

} as Object {encoding: "UTF-8", mediaType: "*/*", mimeType: "*/*", class: "java.util.LinkedHashMap"}

 

Where you can see it is Employee as an Array however I want it in object format like

 

Employee:{

//elements

}

Employee:{

//elements

}

3 answers
  1. Feb 13, 2020, 5:56 PM

    Hi @Sai Gochhayat​ ,

    The format which you mentioned as

    Employee:{

    //elements

    },

    Employee:{

    //elements

    }

    It is not correct for java and json both. It will be similar to creating multiple variable/object within the ​same scope, which is not supported in java and json. Even if you will try to do it then during execution, it will pickup only first element out of all repeated elements. In xml it is fine. So either you have to use array of Object or any other output you need to expect,

    Regards,

    Lalit Panwar

0/9000