Preciso classificar um objeto json (não um array) que não seja um valor de chave simples. Em vez disso, ele contém objetos adicionais
{
"Memo": {
"itemAmount1": "5",
"taxName1": "TAX",
"productPrice1": "10",
"accountName1": "Account Receivable (Debtors)"
},
"Footer": {
"productDescription2": "Maggie",
"itemQuantity2": "49.5",
"accountName2": "Account Receivable (Debtors)",
"taxName2": "TAX"
},
"Header": {
"itemDiscount3": "10",
"accountName3": "Account Receivable (Debtors)",
"productPrice3": "10",
"taxName3": "TAX"
}
}
A saída esperada é: (deve classificar chaves de objetos internos também)
{
"Footer": {
"accountName2": "Account Receivable (Debtors)",
"itemQuantity2": "49.5",
"productDescription2": "Maggie",
"taxName2": "TAX"
},
"Header": {
"accountName3": "Account Receivable (Debtors)",
"itemDiscount3": "10",
"productPrice3": "10",
"taxName3": "TAX"
},
"Memo": {
"accountName1": "Account Receivable (Debtors)",
"itemAmount1": "5",
"productPrice1": "10",
"taxName1": "TAX"
}
}
Não é necessário que seja uma hierarquia de objetos de 2 níveis, pois pode conter n níveis de hierarquia de objetos que precisam ser classificados.
Esta pergunta é uma cópia virtual da pergunta feita aqui (mas isso é para javascript, não para dataweave/mule)
A função interna
orderBy()
também pode classificar objetos. Mas para classificar objetos filhos você precisará de uma função recursiva que se apliqueorderBy()
aos filhos correspondentes por tipo.Saída:
Observe que adicionar uma correspondência a
Array
você também pode usar a função para classificar matrizes ao mesmo tempo.