【问题标题】:How to handle dynamic json content in azure logic app如何在 azure logic app 中处理动态 json 内容
【发布时间】:2020-09-22 16:43:35
【问题描述】:

我有一个具有不同属性的 JSON 输入 示例 1 -

{
  "test1": {
       "A" : {
              Value : "1"
             },
      "B" : {
              Value : "2"
             }

           }
}

Example 2 - 
{
  "test2": {
       "C" : {
              Value : "3"
             }
}

我需要将这些存储在 SQL 数据库中的 Name 和 Value 列中 名称 值 1 乙二 C 3`

JSON 可以具有不同类型的父属性,例如 test1/Test2/test3。而且,我需要将它们存储在名称值对中。如何在逻辑应用中实现这一点?

【问题讨论】:

    标签: azure azure-logic-apps


    【解决方案1】:

    我为你设计了一个逻辑应用工作流:

    您可以使用inline code 通过JavaScript 转换Json。如果你的json格式和你给的一样,可以使用我下面给出的示例代码:

    var json = {  "test1" : {
           "A" : {
                  "Value" : "1"
                 },
          "B" : {
                  "Value" : "2"
                 }
      }
    };
    
    var value1 = Object.values(json)[0];
    
    var array = [];
    
    var key2 = Object.keys(value1);
    
    var value2 = Object.values(value1);
    
    for(var i = 0; i < key2.length; i++){
        array.push(key2[i]);
        array.push(Object.values(value2[i])[0]);
    }
    
    return array;
    

    结果是这样的:

    注意

    Inline code需要integration accounts,可以参考我给你的官方文档。

    【讨论】:

    • 感谢您为此付出的时间和精力!!我使用 OpenJson 和存储过程实现了它。并且,通过逻辑应用程序执行存储的过程。
    • 因为,我需要将数据保存在 SQL 表中 - 我将此 json 作为输入参数发送到存储过程并在下面编写查询以将所需表中的数据插入名称/值列 - INSERT INTO table1 SELECT Attribute.[key] as [Name], AttributeValue.[value] as [Value] FROM OPENJSON(@Json) input CROSS APPLY OPENJSON(input.value) a CROSS APPLY OPENJSON(a.value) b WHERE b.[key ] = '价值
    • 糟糕,这里的代码缩进似乎不起作用。希望,它仍然有帮助!
    猜你喜欢
    • 1970-01-01
    • 2018-03-26
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多