From time to time you may be forced to deal with JSON objects in Power Automate that contain duplicate property names. Consider this object, for example:
{
"Id": 42,
"Name": "Fixing the machine",
"From": "Edison",
"Total": 1000,
"Items": [
{
"Id": 1,
"Name": "Hammering",
"Subtotal": 1
},
{
"Id": 2,
"Name": "Knowing Where to Hammer",
"Subtotal": 999
}
]
}
To make this object maker-friendly, the common approach is to use Parse JSON action and derive schema from the data itself.
![](https://crmtipoftheday.com/wp-content/uploads/2022/04/image-4.png)
When done, maker can use properties as dynamic values. In our data, unfortunately, some properties have identical names (Id and Name) even though their path is different.
![](https://crmtipoftheday.com/wp-content/uploads/2022/04/image-5.png)
As it turns out, object schema can be enriched with “title” and “description” annotations. For example, let’s describe Ids and Names
{
"type": "object",
"properties": {
"Id": {
"type": "integer",
"title": "Invoice ID",
"description": "Unique invoice identifier"
},
"Name": {
"type": "string",
"title": "Invoice name"
},
"From": {
"type": "string"
},
"Total": {
"type": "integer"
},
"Items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Id": {
"type": "integer",
"title": "Invoice line item ID",
"description": "Line item number unique within the invoice"
},
"Name": {
"type": "string",
"description": "Line item name, not to be confused with invoice name"
},
"Subtotal": {
"type": "integer"
}
},
"required": [
"Id",
"Name",
"Subtotal"
]
}
}
}
}
The result is the game changer:
![](https://crmtipoftheday.com/wp-content/uploads/2022/04/image-6.png)
Now you can have your JSON and eat it too.
Cover photo by Natalia Yakovleva on Unsplash
*This post is locked for comments