Как правильно извлекать / преобразовывать JSON данных в объекты? - PullRequest
1 голос
/ 18 июня 2020

У меня есть структура ниже, поступающая через веб-перехватчик, и мне сложно понять, есть ли в приложении Logi c встроенное действие для получения красиво отформатированного массива объектов 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."
                                ]
                            ]

1 Ответ

0 голосов
/ 19 июня 2020

Для этого требования мы можем просто использовать жидкость с учетной записью интеграции в приложении logi c, чтобы реализовать его. Выполните следующие действия:

1. Сначала нам нужно создать учетную запись интеграции на портале azure и связать ее с вашим приложением logi c. Вы можете обратиться к этому учебному пособию .

2. В моем приложении logi c я инициализирую переменную и сохраняю ваши данные (добавляйте {} вокруг данные), чтобы смоделировать вашу ситуацию.

enter image description here

3. Затем используйте « Parse JSON "действие для анализа указанной выше строки. enter image description here

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) в свою учетную запись интеграции, для этого шага вы можете обратиться к этому учебному пособию .

5. Затем используйте «Преобразовать» От JSON до JSON «действие», выберите Body из действия «Анализ JSON» выше и используйте карту, которую вы загружаете. enter image description here

6. После запуска приложения logi c мы можем получить следующий результат: enter image description here

Полный результат 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. На жидкой карте он автоматически преобразует дату и время в другой формат.

Надеюсь, это поможет ~

...