[英]Logic Apps - Data Operations Parse JSON not parsing Content from Event Hub
[英]Parse Json in Logic App from Stream Analytics -> Service Hub -> Logic Apps
我正在嘗試構建將數據插入Sql數據庫的邏輯應用程序。 數據來自Stream Analytics作業,在Service Bus主題上輸出,並在Service Bus觸發器中的Logic Apps中使用。
為了填充所插入行的屬性(可以說它只有一列“名稱”),我發現這應該使用以下語法進行工作:
"body": {
"Name": "@{json(decodeBase64(triggerBody()['ContentData'])).Name}"
},
提供的消息正文包含“名稱”屬性。
但是,運行此程序時出現以下錯誤消息:
{“ code”:“ InvalidTemplate”,“ message”:“在行'1'和列'2017'的輸入'Insert_row'中無法處理模板語言表達式:'模板語言功能'json'參數無效。提供的值'@ \\ u0006string \\ b3http://schemas.microsoft.com/2003/10/Serialization/ {\\“ time \\”:\\“ 2016-05-25T10:29:17.4953250Z \\”,\\“名稱\\ “:\\” Y軸\\ “\\ ”價值\\“:81.0,\\ ”日期\\“:\\ ”2016-05-25T10:29:17.4953250 \\“,\\ ”EventProcessedUtcTime \\“:\\” 2016- 05-25T10:29:17.5525449Z \\“,\\” PartitionId \\“:2,\\” EventEnqueuedUtcTime \\“:\\” 2016-05-25T10:29:17.2220000Z \\“} \\ u0001'無法解析:'意外字符解析值時遇到:@。路徑”,第0行,位置0。'。請參閱https://aka.ms/logicexpressions#json了解用法詳細信息。'。“}
因此,似乎該內容被封裝在另一個信封中,從而無法進行json解析。
1)任何簡單的方法如何解決這個問題?
2)難道這樣的集成就不能在Microsoft Stack中正常工作嗎?
謝謝,Stefan
在工作流定義語言中可用的字符串功能有限的情況下,我不得不使用冗長的方式刪除其他字符串
@{json(substring(replace(decodeBase64(triggerBody()['ContentData']),'@string3http://schemas.microsoft.com/2003/10/Serialization/��', ''),0,sub(length(replace(decodeBase64(triggerBody()['ContentData']),'@string3http://schemas.microsoft.com/2003/10/Serialization/��', '')),1))).fieldname}
有一個更好的方法嗎
感謝您報告此消息,您說對了,它應該可以正常工作。 存在一個已知問題,其中ASA ServiceBus輸出JSON被包裝在XML標頭中。 它將在不久的將來得到解決,但不能指定特定的日期。 在此之前,您能否解決它(可能使用子字符串/替換)?
歡呼,車丹
很抱歉拖延時間,現在已解決此問題。 它在新的兼容性級別(1.1)下公開,以避免破壞現有解決方案。 請使用此URL將您的作業配置為兼容級別1.1,然后嘗試一下。
干杯!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.