Pru*_*i B 1 dataweave mulesoft mule4
dw2.0可以从yaml属性文件中读取路径吗?
例如说输入是
{
"head": {
"country": "US",
"body": {
"USStates": {
"stateName": "California",
"stateCode": "CL"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我必须从上面的请求中获取 stateCode 值。根据国家名称,路径每次都会改变(如中国国家、印度国家等)
那么有没有办法将输入路径作为参数传递给 Data weave?我们正在使用 yaml 属性。我尝试了下面的代码,它导致空值
%dw 2.0
output application/json
---
if(p("countryName." ++ (payload.head.country as String)) != null)
payload.p("countryName." ++ (payload.head.country))
else "not in scope"
Run Code Online (Sandbox Code Playgroud)
在 yaml 中声明如下
countryName:
US : head.body.USStates.stateCode
INDIA : head.body.IndiaStates.stateCode
Run Code Online (Sandbox Code Playgroud)
我什至尝试从有效负载传递路径,然后将其作为字符串。请建议
小智 5
尝试这个:
为了简单起见,我确实使用了路径变量,而不是从 YAML 配置中读取它。
%dw 2.0
output application/json
var data = {
"head": {
"country": "US",
"body": {
"USStates": {
"stateName": "California",
"stateCode": "CL"
}
}
}
}
var path = "head.body.USStates.stateCode"
---
path splitBy /\./ reduce (e,acc=data) -> acc[e]
Run Code Online (Sandbox Code Playgroud)
编辑:如果您需要解释,请询问,我稍后会重新编辑所有详细信息。现在没时间:)。
Edit1:看看这个答案的解释reduce。
| 归档时间: |
|
| 查看次数: |
1382 次 |
| 最近记录: |