Azure 逻辑应用程序 - 使用动态 key/name 解析 JSON
Azure Logic App - Parse JSON with dynamic key/name
只是想知道我是否以及如何在 JSON 中解析具有动态名称的 HTTP 响应?
我使用 Azure Management API to receive the managed identities (system- and user assigned managed identities) 接收所有托管身份。
我用 foreach 迭代结果。
如果资源有 system assigned managed identity
和 user assigned managed identity
,响应如下所示:
{
"principalId": "<principalId1>",
"tenantId": "<tenantId>",
"type": "SystemAssigned, UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentitiesName>": {
"principalId": "<principalId2>",
"clientId": "<clientId>"
}
}
}
现在,我想得到<principalId2>
。
不幸的是,对象的 Name
与资源范围 /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentitiesName>
.
是动态相关的
如何解析 JSON 以接收所需的 <principalId2>
?
对于所有其他响应,我可以轻松地将 Data operations
Parse JSON
与我从 HTTP 响应中插入的有效负载一起使用。
有没有办法使用通配符?否则,我能否以某种方式 select userAssignedIdentities
的第一个对象接收所需的值?
好的,这应该适合你。这是我用 ...
测试的流程
初始化JSON
您的 JSON 作为 字符串,您在解决方案中的处理方式可能略有不同。
初始化 XPath 结果
定义为数组,表达式为...
xpath(xml(json(concat('{ root: ', replace(variables('JSON'), 'PrincipalId', 'principalId'), '}'))), '(//principalId)[2]')
初始化结果
又做了一些工作,但定义为 String,表达式为 ...
array(xpath(xml(base64ToString(variables('XPath Result')[0]?['$content'])), '//text()'))[0]
最终结果应该是你的价值...
只是想知道我是否以及如何在 JSON 中解析具有动态名称的 HTTP 响应? 我使用 Azure Management API to receive the managed identities (system- and user assigned managed identities) 接收所有托管身份。 我用 foreach 迭代结果。
如果资源有 system assigned managed identity
和 user assigned managed identity
,响应如下所示:
{
"principalId": "<principalId1>",
"tenantId": "<tenantId>",
"type": "SystemAssigned, UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentitiesName>": {
"principalId": "<principalId2>",
"clientId": "<clientId>"
}
}
}
现在,我想得到<principalId2>
。
不幸的是,对象的 Name
与资源范围 /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentitiesName>
.
如何解析 JSON 以接收所需的 <principalId2>
?
对于所有其他响应,我可以轻松地将 Data operations
Parse JSON
与我从 HTTP 响应中插入的有效负载一起使用。
有没有办法使用通配符?否则,我能否以某种方式 select userAssignedIdentities
的第一个对象接收所需的值?
好的,这应该适合你。这是我用 ...
测试的流程初始化JSON
您的 JSON 作为 字符串,您在解决方案中的处理方式可能略有不同。
初始化 XPath 结果
定义为数组,表达式为...
xpath(xml(json(concat('{ root: ', replace(variables('JSON'), 'PrincipalId', 'principalId'), '}'))), '(//principalId)[2]')
初始化结果
又做了一些工作,但定义为 String,表达式为 ...
array(xpath(xml(base64ToString(variables('XPath Result')[0]?['$content'])), '//text()'))[0]
最终结果应该是你的价值...