【问题标题】:Logic app- how to retrieve json data from dynamic property name逻辑应用程序-如何从动态属性名称中检索 json 数据
【发布时间】:2020-10-07 21:03:15
【问题描述】:

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

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

} }

【问题讨论】:

    标签: azure-logic-apps


    【解决方案1】:

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

    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"
    }
    

    请注意上面架构中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']

    【讨论】:

    • 这里,动态内容部分可以是“Property - Name”或“Property - Something”之类的任何内容。如果我引用这样的表达式 - body('Parse_JSON')?['Attributes']?['Property - Dynamic content'],那么,它的静态..我需要将该部分称为变量或其他东西
    • 嗨@Mm77 Property - Name 也可以是动态的。例如,初始化一个变量var1,如this,并用你想要的任何值设置它的值。然后我们只需要将表达式更改为body('Parse_JSON')?['Attributes']?[variables('var1')]。不管怎样,你已经解决了这个问题,太好了:)
    【解决方案2】:

    我能够使用内联代码获得我需要的东西 - javascript - 如果其他人正在寻找相同的东西 - 就是这样 - 这将提供来自 Property - 动态内容元素的 json。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-20
      • 2016-10-21
      相关资源
      最近更新 更多