在 Dataweave 中动态引用负载字段名称
Dynamically reference payload field names in Dataweave
我正在使用 Anypoint Studio 7.3 和 Mule 4.1。
我希望在转换消息时从 JSON 有效负载动态传递字段名称,因此在第一次调用时我想使用 "cat_name" 字段中的值,当我调用它时第二次我想使用 "dog_name" 字段中的值,因为输出消息结构将相同。所以对于 "cat_name" 我希望 $.(vars.codetest) 被解析为 payload.cat_name 而对于 "dog_name" 我希望 $.(vars.codetest) 被解析作为 payload.dog_name
有办法吗?
%dw 2.0
output application/json
---
(payload distinctBy $.#[vars.codetest]) map ((payload01, indexOfPayload) ->{
name: $.(vars.codetest)
})
感谢您的帮助
像这样的东西应该可以工作:
%dw 2.0
output application/json
---
payload
distinctBy $[vars.codetest]
map ((element) -> { name: element[vars.codetest] })
您可能需要在 codeTest 周围加上括号(即 (vars.codetest)
),以便在查找之前对其进行评估。
我正在使用 Anypoint Studio 7.3 和 Mule 4.1。
我希望在转换消息时从 JSON 有效负载动态传递字段名称,因此在第一次调用时我想使用 "cat_name" 字段中的值,当我调用它时第二次我想使用 "dog_name" 字段中的值,因为输出消息结构将相同。所以对于 "cat_name" 我希望 $.(vars.codetest) 被解析为 payload.cat_name 而对于 "dog_name" 我希望 $.(vars.codetest) 被解析作为 payload.dog_name
有办法吗?
%dw 2.0
output application/json
---
(payload distinctBy $.#[vars.codetest]) map ((payload01, indexOfPayload) ->{
name: $.(vars.codetest)
})
感谢您的帮助
像这样的东西应该可以工作:
%dw 2.0
output application/json
---
payload
distinctBy $[vars.codetest]
map ((element) -> { name: element[vars.codetest] })
您可能需要在 codeTest 周围加上括号(即 (vars.codetest)
),以便在查找之前对其进行评估。