逻辑应用程序 - 如何从动态 属性 名称中检索 json 数据

Logic app- how to retrieve json data from dynamic property name

这是我的 json - 我想从“属性 - 动态内容”中检索 json 内容。其中,动态内容部分可能因每个 json 请求而异。我如何通过动态名称过滤它?

{
  "Attributes": 
  {
    "Property1": {
      "Data1": {
        "Value": "50"
  }
},
"Property2": {
  "Data2": {
    "Value": "50"
  }
},
"Property - Dynamic content": {
  "Data3": {
    "Value": "50"
  },
  "Data4": {
    "Value": "50"
  }
}

} }

对于您的需求,请参考下面我的逻辑应用程序:

1.我初始化了一个变量并存储了和你一样的json来模拟你的情况

2. 然后用“Parse JSON”.

请注意“Parse JSON”的架构显示为:

{
    "properties": {
        "Attributes": {
            "properties": {
                "Property - Dynamic content": {
                    "type": [
                        "object",
                        "array"
                    ]
                },
                "Property1": {
                    "properties": {
                        "Data1": {
                            "properties": {
                                "Value": {
                                    "type": "string"
                                }
                            },
                            "type": "object"
                        }
                    },
                    "type": "object"
                },
                "Property2": {
                    "properties": {
                        "Data2": {
                            "properties": {
                                "Value": {
                                    "type": "string"
                                }
                            },
                            "type": "object"
                        }
                    },
                    "type": "object"
                }
            },
            "type": "object"
        }
    },
    "type": "object"
}

请注意上面schema中Property - Dynamic contenttype。由于Property - Dynamic content的内容要么是“object”,要么是“array”,所以我把“object”和“array”都设置为Property - Dynamic contenttype

3. 然后我初始化了一个名为“result”的变量来获取你想要的值。

由于我们在 Property - Dynamic content 的架构中同时使用类型“对象”和“数组”,因此您可能无法在“动态内容”选项中找到它。您可以通过表达式输入它的值,如上图所示。整个表达式是:body('Parse_JSON')?['Attributes']?['Property - Dynamic content']

我能够使用内联代码获得我需要的东西 - javascript - 如果其他人正在寻找相同的东西 - 在这里 - 这将从 属性 得到 json - 动态内容元素。

var 数据 = Object.keys(workflowContext.trigger.outputs.body.Attributes);

var key = data.filter(s => s.includes('Property')).toString(); // 获取元素 - 属性 - 动态内容

return workflowContext.trigger.outputs.body.Attributes[键];