Search code examples
jsonboomi

How can I get Boomi to return valid JSON


I am querying records from Salesforce and trying to return the record set as a JSON array of records.

enter image description here

enter image description here Unfortunately, it returns every record as if it was a single record as the complete JSON rather than an array element in the same JSON object.

{
  "AppointmentID": "a046g00000Nyk6oAAB"
}{
  "AppointmentID": "a046g00000NyjhfAAB"
}{
  "AppointmentID": "a046g00000NygSfAAJ"
}

There are no commas between the records. So I built the array into the JSON response and get:

{
  "Appointments": [
    {
      "AppointmentID": "a046g00000Nyk6oAAB"
    }
  ]
}{
  "Appointments": [
    {
      "AppointmentID": "a046g00000NyjhfAAB"
    }
  ]
}{
  "Appointments": [
    {
      "AppointmentID": "a046g00000NygSfAAJ"
    }
  ]
}

and it sends each record as the entire JSON template rather than a element of the array. Again, it also does not send commas back between the elements. I can work with a less than ideal structure but I need valid JSON returned.

Lastly, I tried to modify the results with a Data Process Shape using s Search and Replace

searching for: \}\{ 
replacing with \}\,\{ 

trying for force a comma between the braces, but the search never finds any matches even though this is a valid Javascript regex search.

Any suggestions would be greatly appreciated.

Final/Fixed Map enter image description here


Solution

  • It's likely that the destination profile is incorrect and that you manually created the JSON profile. I would write the JSON out that you're expecting with all of the fields and then import (when you open the JSON profile, it's a blue button in the top right).

    Also, Salesforce usually returns each record as 1 document and not combined. So, it's likely multiple documents are coming out of the map and you'll need to do a combine (data process shape).