Изменение данных JSON с помощью приложений логики - PullRequest
0 голосов
/ 03 октября 2019

У меня есть более 1000 файлов JSON, и я получаю это ежедневно. У меня есть проблема с языком EN, и я хотел бы, чтобы он был на английском. Я получил файлы JSON через приложение логики, поэтому возможно ли это сделать в приложении логики.

{
  "customer": "ABCD",
  "firstname": "Bob",
  "lastname": "Doe",
  "email": "XYZ",
  "language": "EN"
}

У меня также будет BEL для Бельгии и FR для Франции.

Ответы [ 2 ]

0 голосов
/ 25 октября 2019

Если вы не решили эту проблему, обратитесь к приведенному ниже решению, это может помочь вашей проблеме, и, возможно, нам будет легко с ней справиться.

Поскольку я не знаю источникаваши файлы json и место их хранения, поэтому в моем приложении логики я загружаю файл json в хранилище BLOB-объектов Azure.

Сначала я использую действие «Получить содержимое BLOB-объектов» в приложении логики, чтобы получить содержимоефайл JSON. enter image description here

Во-вторых, инициализируйте переменную с именем "jsonString", чтобы сохранить json в строковом типе. enter image description here

Затем выполните операцию замены с помощью функции replace (). enter image description here Полное выражение:

replace(variables('jsonString'), 'EN', 'ENGLISH')

Теперь мы можем получить результат, который мы ожидаем. enter image description here

Если у вас много файлов json, вы можете использовать действие «Список BLOB-объектов», чтобы вывести список всех файлов JSON в хранилище BLOB-объектов, а затем использовать «Получить содержимое BLOB-объектов». действие.

Надеюсь, это поможет вашей проблеме ~

0 голосов
/ 06 октября 2019

Конечно, это зависит от того, что вы еще делаете.

Базовый пример:

  1. Анализ JSON, который вы предоставили, из тела HTTP-запроса.
  2. Создана переменная «Выходные данные» для хранения обновленного объекта.
  3. Запустили его через элемент управления Switch, чтобы посмотреть значение свойства языка.
  4. Если значение было «EN», я использовал функцию setProperty внутри действия Set Variable, чтобы установить переменную «Выходные данные». Вы можете добавить совпадения для других стран и по умолчанию установить переменную в исходное значение JSON
  5. . В качестве ответа на запрос была возвращена переменная «Выходные данные».

Вот схема JSONдля приложения. Я использовал и переменную ввода данных, а также вывод, но вы должны быть в состоянии сделать это только с выходной переменной.

{
    "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {},
    "triggers": {
        "manual": {
            "type": "Request",
            "kind": "Http",
            "inputs": {
                "schema": {
                    "properties": {
                        "customer": {
                            "type": "string"
                        },
                        "email": {
                            "type": "string"
                        },
                        "firstname": {
                            "type": "string"
                        },
                        "language": {
                            "type": "string"
                        },
                        "lastname": {
                            "type": "string"
                        }
                    },
                    "type": "object"
                }
            }
        }
    },
    "actions": {
        "Input_Data": {
            "runAfter": {},
            "type": "InitializeVariable",
            "inputs": {
                "variables": [
                    {
                        "name": "Data",
                        "type": "Object",
                        "value": "@triggerBody()"
                    }
                ]
            }
        },
        "Output_Data": {
            "runAfter": {
                "Input_Data": [
                    "Succeeded"
                ]
            },
            "type": "InitializeVariable",
            "inputs": {
                "variables": [
                    {
                        "name": "Output Data",
                        "type": "Object"
                    }
                ]
            }
        },
        "Parse_JSON": {
            "runAfter": {
                "Output_Data": [
                    "Succeeded"
                ]
            },
            "type": "ParseJson",
            "inputs": {
                "content": "@variables('Data')",
                "schema": {
                    "customer": "ABCD",
                    "email": "XYZ",
                    "firstname": "Bob",
                    "language": "EN",
                    "lastname": "Doe"
                }
            }
        },
        "Response": {
            "runAfter": {
                "Switch": [
                    "Succeeded"
                ]
            },
            "type": "Response",
            "kind": "Http",
            "inputs": {
                "body": "@variables('Output Data')",
                "statusCode": 200
            }
        },
        "Switch": {
            "runAfter": {
                "Parse_JSON": [
                    "Succeeded"
                ]
            },
            "cases": {
                "Case": {
                    "case": "EN",
                    "actions": {
                        "Set_variable": {
                            "runAfter": {},
                            "type": "SetVariable",
                            "inputs": {
                                "name": "Output Data",
                                "value": "@setProperty(variables('Data'), 'language', 'English')"
                            }
                        }
                    }
                }
            },
            "default": {
                "actions": {
                    "Set_variable_2": {
                        "runAfter": {},
                        "type": "SetVariable",
                        "inputs": {
                            "name": "Output Data",
                            "value": "@variables('Data')"
                        }
                    }
                }
            },
            "expression": "@body('Parse_JSON')['language']",
            "type": "Switch"
        }
    },
    "outputs": {}
}
...