希望一切顺利。
我需要创建logicapp表达式,以便在json中读取子元素,其中元素和层次结构的名称保持不变,但父名可以更改。
例如: JSON-1:
{
"root": {
"abc1": {
"abc2": [
{
"element": "value1",
"element2": "value"
},
{
"element": "value2",
"element2": "valu2"
}
]
}
}
}JSON-2:
{
"root": {
"xyz1": {
"xyz2": [
{
"element": "value1",
"element2": "value"
},
{
"element": "value2",
"element2": "valu2"
}
]
}
}
}我尝试过这些方法,但没有运气方法-1:@{body(“”)?“_”_‘元素’方法-2:@{body(“”)?‘element’
如果有人遇到这种情况,请告诉我。在此之前,非常感谢您。
发布于 2022-09-30 21:39:51
我倾向于发现将JSON转换为xml (至少在您的情况下)是最简单的解决方案。然后,当您这样做了,您就不能使用XPath来简单地进行选择。
流

从基本的角度来说..。
我已经定义了一个类型为xml(variables('JSON Object'))
Elements (假设它们有多个)。设置该变量的表达式是智能的来源。该表达式是. xpath(xml(variables('XML')), '//element/text()'),它通过结果获取xpath(xml(variables('XML')), '//element/text()')循环中所有element节点的内部文本。如果需要将其提升一个级别并获得第二个元素,则需要将xpath更改为更通用的查询,以便可以在每个数组中获得element2节点(以及3、4、5等)。
备注:,我坚持了你关于寻找element__的具体问题。
结果


这个定义(可以直接加载到租户中)演示了这种想法.
{
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"For_Each_Element": {
"actions": {
"Set_Element": {
"inputs": {
"name": "Element",
"value": "@{item()}"
},
"runAfter": {},
"type": "SetVariable"
}
},
"foreach": "@variables('Elements')",
"runAfter": {
"Initialize_Element": [
"Succeeded"
]
},
"type": "Foreach"
},
"Initialize_Element": {
"inputs": {
"variables": [
{
"name": "Element",
"type": "string"
}
]
},
"runAfter": {
"Initialize_Elements": [
"Succeeded"
]
},
"type": "InitializeVariable"
},
"Initialize_Elements": {
"inputs": {
"variables": [
{
"name": "Elements",
"type": "array",
"value": "@xpath(xml(variables('XML')), '//element/text()')"
}
]
},
"runAfter": {
"Initialize_XML": [
"Succeeded"
]
},
"type": "InitializeVariable"
},
"Initialize_JSON_Object": {
"inputs": {
"variables": [
{
"name": "JSON Object",
"type": "object",
"value": {
"root": {
"abc1": {
"abc2": [
{
"element": "value1",
"element2": "value"
},
{
"element": "value2",
"element2": "valu2"
}
]
}
}
}
}
]
},
"runAfter": {},
"type": "InitializeVariable"
},
"Initialize_XML": {
"inputs": {
"variables": [
{
"name": "XML",
"type": "string",
"value": "@{xml(variables('JSON Object'))}"
}
]
},
"runAfter": {
"Initialize_JSON_Object": [
"Succeeded"
]
},
"type": "InitializeVariable"
}
},
"contentVersion": "1.0.0.0",
"outputs": {},
"parameters": {
"ParameterTest1": {
"defaultValue": "\"\"",
"type": "String"
}
},
"triggers": {
"manual": {
"inputs": {
"method": "GET",
"schema": {}
},
"kind": "Http",
"type": "Request"
}
}
},
"parameters": {}
}https://stackoverflow.com/questions/73909221
复制相似问题