$merge
$merge(array) -> objectCompact type signature
<a<o>:o>Source: JSONata
Documentation
Merges an array of objects into a single object containing all the key/value pairs from each of the objects in the input array. If any of the input objects contain the same key, then the returned object will contain the value of the last one in the array. It is an error if the input array contains an item that is not an object.
Examples
Merge computed fields into a base object
Input
This example uses the patient-summary example input. The expression builds a smaller object with patient and name fields, then merges in a computed patientLabel.
Example input
JSON
{
"patientId": "pat-0001",
"name": {
"given": "Avery",
"family": "Reed",
"display": "Avery Reed"
},
"birthDate": "1990-06-12",
"sex": "female",
"primaryCareTeam": {
"organization": "ExampleCare",
"facility": "ExampleCare Clinic",
"practitioner": {
"practitionerId": "prac-4001",
"display": "Jordan Kim"
}
},
"identifiers": {
"memberId": "mbr-3001",
"recordNumber": "rec-5001"
},
"tags": [
"demo",
"fictional"
],
"_xmlTagName": "patientSummary"
}
Expression
$merge([
{
"patientId": patientId,
"name": {
"given": name.given,
"family": name.family
}
},
{
"patientLabel": name.family & ", " & name.given
}
])
Result
{
"patientId": "pat-0001",
"name": {
"given": "Avery",
"family": "Reed"
},
"patientLabel": "Reed, Avery"
}