![](/img/trans.png)
[英]Iterating Through and Checking JSON Object Properties using Azure Logic Apps
[英]How to specify JSON node property values when parsing/iterating in Azure Logic Apps?
TL; DR如何在Azure Logic Apps的ParseJSON> For Each步驟中指定特定的JSON節點屬性,當設計者只允許我訪問父節點時?
我正在構建一個邏輯應用程序:
第1項的JSON響應具有以下結構:
{
"Success": true,
"Message": "Completed",
"Result": [
{
"EmployeeId": {
"DisplayValue": "PW123",
"FieldHistory": []
},
"EmailId": {
"DisplayValue": "*****.*****@******.co.uk",
"FieldHistory": []
}
},
{
"EmployeeId": {
"DisplayValue": "PW789",
"FieldHistory": []
},
"EmailId": {
"DisplayValue": "*****.*****@******.co.uk",
"FieldHistory": []
}
},
.... removed for brevity
]
}
在設計器中,如果我添加Data Operations > Parse JSON > For Each
步驟,它允許我指定屬性,但是級別太高:
請注意,設計器為我提供了EmployeeId
,但實際上我需要EmployeeId.DisplayValue
,它既是屬性又是JSON格式的值,而不是僅包含EmployeeId或EmailId值的簡單字符串。
可以使用設計器在我需要的更深層次讀取JSON嗎?
如果我沒有弄錯你可以在Parse_JSON()['EmployeeId']['DisplayValue']
< - 行中做一些事情 - 這可能不是完全匹配,但語法是這樣的。
他們這樣做的方法是你要么在代碼視圖中寫入,要么在表達式中開始設計,添加動態內容的空白並添加['DisplayValue']標記。
為了支持AdAstra的輸入並提供規范的答案以供將來參考......
ForEach
塊具有誤導性,實際上並不需要。 而是需要一個Select
塊,但是必須在Code View中編輯(由@AdAstra建議)來挑選所需的字段:
我仍然需要弄清楚將輸出包裝在我想要的結構中,並在解決后更新。 事實證明,由於代碼視圖,將JSON重組為新結構也非常簡單。 我只是在現有邏輯周圍指定了我想要的輸出:
"from": "@body('Parse_JSON')?['Result']",
"select": {
"Option1": "Value1",
"Option2": "Value2",
"People": [
{
"Email": "@item()['EmailId']['DisplayValue']",
"FirstName": "@item()['FirstName']['DisplayValue']"
}
]
}
請注意,在代碼中指定后,Designer View不允許對更復雜的選擇進行修改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.