我如何正确地将extract/convertJSON数据转化为对象?

How do I properly extract/convert JSON data into objects?

我有下面的结构是通过 webhook 来的,我无法理解逻辑应用程序中是否有内置操作来获取 table 内 rows 的格式良好的对象数组,其中每个项目都会有名称和关联的值。

  "SearchResults": {
                    "tables": [
                        {
                            "name": "PrimaryResult",
                            "columns": [
                                {
                                    "name": "TimeGenerated",
                                    "type": "datetime"
                                },
                                {
                                    "name": "ResourceGroup",
                                    "type": "string"
                                },
                                {
                                    "name": "ActivityStatusValue",
                                    "type": "string"
                                },
                                {
                                    "name": "d_resource",
                                    "type": "dynamic"
                                },
                                {
                                    "name": "c_title",
                                    "type": "dynamic"
                                },
                                {
                                    "name": "c_details",
                                    "type": "dynamic"
                                }
                            ],
                            "rows": [
                                [
                                    "2020-06-18T16:30:07.89Z",
                                    "USEASTPROD",
                                    "Updated",
                                    "aueglbwvhypap07",
                                    "Remote disk disconnected",
                                    "We're sorry, your virtual machine is unavailable because of connectivity loss to the remote disk. An unexpected problem is preventing us from automatically recovering your virtual machine."
                                ],
                                [
                                    "2020-06-18T16:30:07.89Z",
                                    "USEASTPROD",
                                    "Updated1",
                                    "agggggypap07",
                                    "Remote disk disconnected",
                                    "We're sorry, your virtual machine is unavailable because of connectivity loss to the remote disk. An unexpected problem is preventing us from automatically recovering your virtual machine."
                                ]
                            ]
                        }
                    ]
}

我希望它是一个数组,其中列是实体名称,rows 中的每个值都是如下所示的值

"rows": [
                                [
                                    "timeGenerated" :"2020-06-18T16:30:07.89Z",
                                    "ResourceGroup": "USEASTPROD",
                                    "ActivityStatusValue":"Updated",
                                    "d_resource" : "aueglbwvhypap07",
                                    "c_title" : "Remote disk disconnected",
                                    "c_details": "We're sorry, your virtual machine is unavailable because of connectivity loss to the remote disk. An unexpected problem is preventing us from automatically recovering your virtual machine."
                                ],
                                [
                                    "timeGenerated" :"2020-06-18T16:30:07.89Z",
                                    "ResourceGroup": "USEASTPROD",
                                    "ActivityStatusValue":"Updated1",
                                    "d_resource" : "agggggypap07",
                                    "c_title" : "Remote disk disconnected",
                                    "c_details": "We're sorry, your virtual machine is unavailable because of connectivity loss to the remote disk. An unexpected problem is preventing us from automatically recovering your virtual machine."
                                ]
                            ]

对于这个需求,我们可以直接在logic app中使用liquid集成account来实现。请参考以下步骤:

1. 我们需要先在 Azure 门户上创建一个集成帐户,然后 link 它到您的逻辑应用程序。可以参考这个tutorial.

2. 在我的逻辑应用程序中,我初始化一个变量并存储你的数据(在数据周围添加一个 {})来模拟你的情况。

3. 然后用“Parse JSON”动作解析上面的字符串。

4. 在本地创建一个液体贴图(我命名为testRow.liquid),代码如下:

{% assign rows = content.SearchResults.tables[0].rows %}

{
    "rows": [
        {% for item in rows %}
            {
                "timeGenerated": "{{item[0]}}",
                "ResourceGroup": "{{item[1]}}",
                "ActivityStatusValue": "{{item[2]}}",
                "d_resource": "{{item[3]}}",
                "c_title": "{{item[4]}}",
                "c_details": "{{item[5]}}"
            },
        {% endfor %}
    ]
}

上传液体贴图(testRow.liquid)到你的集成账号,这一步你可以参考这个tutorial

5. Then use "Transform JSON to JSON" action", 从上面的 "Parse JSON" 动作中选择 Body 并使用您上传的地图。

6.逻辑应用运行后,我们可以得到如下结果:

整个结果json是:

{
  "rows": [
    {
      "timeGenerated": "6/18/2020 4:30:07 PM",
      "ResourceGroup": "USEASTPROD",
      "ActivityStatusValue": "Updated",
      "d_resource": "aueglbwvhypap07",
      "c_title": "Remote disk disconnected",
      "c_details": "We're sorry, your virtual machine is unavailable because of connectivity loss to the remote disk. An unexpected problem is preventing us from automatically recovering your virtual machine."
    },
    {
      "timeGenerated": "6/18/2020 4:30:07 PM",
      "ResourceGroup": "USEASTPROD",
      "ActivityStatusValue": "Updated1",
      "d_resource": "agggggypap07",
      "c_title": "Remote disk disconnected",
      "c_details": "We're sorry, your virtual machine is unavailable because of connectivity loss to the remote disk. An unexpected problem is preventing us from automatically recovering your virtual machine."
    }
  ]
}

顺便说一句:

  1. 您提供的示例格式在json中无效,我们必须在每个项目中使用{}而不是[]

  2. 在液体地图中,它会自动将您的日期时间转换为另一种格式。

希望对你有帮助~