【问题标题】:Dataweave empty array input add default key:valueDataweave 空数组输入添加默认键:值
【发布时间】:2017-06-09 08:39:02
【问题描述】:

有没有办法将 json 数组中的 http 响应映射到另一个 json 映射,同时考虑默认值,即当它为空时映射默认密钥对?

输入

{

"key1": []
"key2":[x,y]
}

请求输出

{"table":[{
  "a-key1": "deafault-value",
  "a-key2": "x",
  "b-key2": "y"
  }]
}

【问题讨论】:

  • 描述不准确。输入是一个 JSON 对象,其中每个键都包含一个数组。

标签: mule dataweave


【解决方案1】:

您只能在 null 的情况下使用 default 关键字,但对于空白和空数组,您可以使用类似

%dw 1.0
%output application/json
%function getDefault(inputdata, defaultvalue)  inputdata when inputdata != null and (sizeOf inputdata) > 0 otherwise defaultvalue
---
{"table": [{
  "a-key1": getDefault(payload.key1,"defaultKey1") ,
  "a-key2": getDefault(payload.key2,"defaultKey2"),
  "b-key2": getDefault(payload.key3,"defaultKey2")

  }]
}

假设有效负载是标头或查询参数。

希望这会有所帮助。

【讨论】:

    【解决方案2】:
    <dw:transform-message doc:name="Transform Message" metadata:id="....">
    <dw:input-payload mimeType="application/xml"/>
    <dw:set-payload>
    <![CDATA[%dw 1.0
    %output application/xml
    ---
    {
        table: {
            (payload.*object map ( {
                key: $.value when $.value != empty
                     otherwise 'deafault-value'
            }))
        }
    }
    ]]>
    </dw:set-payload>
    </dw:transform-message>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-07
      • 2017-09-06
      • 2016-01-30
      • 1970-01-01
      • 2014-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多