【问题标题】:How to order by attribute name?如何按属性名称排序?
【发布时间】:2021-05-25 10:34:31
【问题描述】:

在对数组元素内的属性进行排序时需要一些帮助。 所以我有这样的有效载荷:

person=[
 {
   "Phone" : "1234",
   "Name" : "John",
   "Address": "ABC"
 },
 {
   "Phone" : "5678",
   "Name" : "Mary",
   "Address": "DEF"
 },
]

我希望得到这样的结果:

 person=[
 {
   "Address": "ABC",
   "Name" : "John",
   "Phone" : "1234"
 },
 {
   "Address": "DEF",
   "Name" : "Mary",
   "Phone" : "5678"
 },
]

我尝试这样:

%dw 1.0
%output application/json
---
"result": payload[0] orderBy $$

但它没有排序,如果我尝试使用

按$订购

我收到错误:如果类型为 ::object...,则无法比较值...

【问题讨论】:

    标签: dataweave mulesoft mule-esb


    【解决方案1】:

    您需要映射每个元素,然后对每个元素进行排序:

    %dw 1.0
    %output application/json
    ---
    "result": payload map ($ orderBy $$)
    

    输出:

    {
      "result": [
        {
          "Address": "ABC",
          "Name": "John",
          "Phone": "1234"
        },
        {
          "Address": "DEF",
          "Name": "Mary",
          "Phone": "5678"
        }
      ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-12
      • 2017-03-23
      • 2010-11-24
      • 2021-09-05
      相关资源
      最近更新 更多