Forum Discussion

deepak_shaw's avatar
deepak_shaw
Contributor
4 years ago
Solved

Key value pair from object array

Hi,
I would like to create the below outbound message from an incoming object array.

{
    "root": {
        "elementName": {
            "@attributeName": "attributeValue",
            "$": "elementValue"
        },
        "repeatedElement": [
            {
                "key": {
                    "@attr": "attr1",
                    "$": "key1"
                },
                "value": "value1"
            },
            {
                "key": {
                    "@attr": "attr2",
                    "$": "key2"
                },
                "value": "value2"
            }
        ]
    }
}

Any suggestion please on the repeated elements, attributes, and values?
Thanks,
Deepak Shaw

11 Replies

    • deepak_shaw's avatar
      deepak_shaw
      Contributor

      Hi,
      Yes, Attached the incoming message.

      Looking forward for your suggestion/solution.
      Regards,
      Deepak.

      • bojanvelevski's avatar
        bojanvelevski
        Valued Contributor

        The objects contain quite a lot information, so please share some info on which are the corresponding fields that you want in your output.

  • bojanvelevski's avatar
    bojanvelevski
    Valued Contributor

    It’s a bit confusing. repeatedElement it’s obviously the InvoiceLines object, but in your output sample, the objects contain only one key value pair:

     {
                    "key": {
                        "@attr": "attr1",
                        "$": "key1"
                    },
                    "value": "value1"
         } 
    

    While in the incoming data, one object contains four fields:

    {
            "LineNumber": "1",
            "LineExtAmtExclTax": "7000",
            "Employee": "Marlon Mangila",
            "LineTax": "700"
          }
    

    Quickly use those fields to manually populate this output object from above, just as a reference.

    • deepak_shaw's avatar
      deepak_shaw
      Contributor

      Hi @bojanvelevski ,
      Just to clarify here are input & output messages:
      input:

      [
        {
          "Header": {
            "InvoiceNumber": "PRP100418",
            "InvoiceDate": "29/04/2022",
            "PaymentTermsDescription": "Net 7 days",
            "CustomerRef": "C1381"
          },
          "InvoiceLines": [
            {
              "LineNumber": "1",
              "LineExtAmtExclTax": "7000",
              "Employee": "Marlon Mangila",
              "LineTax": "700"
            },
            {
              "LineNumber": "2",
              "LineExtAmtExclTax": "800",
              "Employee": "Elin Joe",
              "LineTax": "150"
            }
          ]
        }
      ]
      

      output:

      {
          "Invoice": {
              "InvoiceNumber": {
                  "@attributeName": "PRP100418",
                  "$": "C1381"
              },
              "InvoiceLines": [
                  {
                      "LineNumber": {
                          "@LineExtAmtExclTax": "7000",
                          "$": "1"
                      },
                      "value": "Marlon Mangila"
                  },
                  {
                      "LineNumber": {
                          "@LineExtAmtExclTax": "8000",
                          "$": "2"
                      },
                      "value": "Elin Joe"
                  }
              ]
          }
      }
      

      Looking forward to your suggestion.
      Regards,
      Deepak.