dataweave中json中的值选择器

dataweave中json中的值选择器,json,mule,dataweave,Json,Mule,Dataweave,我正在dataweave中对xml进行json转换,对于这个m使用变量,这是我下面的json {"step1": [ "lightratio": { "step1Name": "mystep" }, "lightratio": { "step1Name":"mystep" } ] } 我的数据编织脚本 %dw 1.0 %output application/xml %var test = step1.lightratio.step1Name

我正在dataweave中对xml进行json转换,对于这个m使用变量,这是我下面的json

{"step1": [
"lightratio": {
   "step1Name": "mystep"

 },

 "lightratio": {
  "step1Name":"mystep"


  }
  ]

  }
我的数据编织脚本

  %dw 1.0
  %output application/xml 
  %var test = step1.lightratio.step1Name
   --- 
  {
   my logic
   }

Myquery:-我想将json元素“step1Name”的值,即“mystep”分配给dataweave变量,即“test”(onlye value),我如何实现这一点,如果我只在json数组中放置位置为零的值对我来说是好的。

我假设您问题中的json是有效负载。您可以从
step1
列表中的第一个元素访问
step1Name
,如下所示:

payload.step1[0].lightratio.step1Name

对于负载为空的情况,可以使用
skipNullOn

%dw 1.0
%output application/xml skipNullOn="everywhere"
%var payload = {  
   "step1":[  
      {  
         "lightratio":{  
            "step1Name":"mystep"
         }
      },
      {  
         "lightratio":{  
            "step1Name":"mystep"
             }
          }
       ]
    }
%var test = payload.step1[0].lightratio.step1Name
---
root : {
    varValue: test
}
带有效载荷的输出

<?xml version='1.0' encoding='windows-1252'?>
<root>
  <varValue>mystep</varValue>
</root>

迈步
具有空有效负载的输出

<?xml version='1.0' encoding='windows-1252'?>
<root/>


是,这是我的有效负载,如果我的有效负载为null,则表示没有json有效负载。在这种情况下,如何添加null检查。因为表达式“payload.step1[0].lightratio.step1Name”将失败,因为[0]处不存在任何值。。请注意DataWeave有一个名为的功能。在那里,您可以告诉dataweave如何处理空情况。