Powershell 4.0: Функция ConvertTo-JSONCustom

Задача: Преобразовать хэш-таблицу в JSON

Начиная с версии powershell 5 существует командлет ConvertTo-JSON, который с легкостью делает из хэш-таблицы JSON, но вот в более ранних версиях powershell приходится это делать вручную!

Эта функция, названная ConvertTo-JsonCustom, принимает хэш-таблицу (Hashtable) в качестве обязательного параметра и возвращает JSON-строку, которая представляет собой сериализованное представление этой хэш-таблицы.

В первой строке функция создает переменную $json со значением { для начала JSON-строки.

Далее, функция проходит по каждому ключу в хэш-таблице, используя цикл foreach. Для каждого ключа функция получает значение $value, связанное с этим ключом в хэш-таблице.

Затем функция проверяет тип значения. Если значение является хэш-таблицей, функция вызывает сама себя рекурсивно и добавляет результат вызова в текущую JSON-строку, используя ключ как имя объекта.

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

Наконец, если значение не является ни хэш-таблицей, ни массивом, функция добавляет ключ и значение в JSON-строку в кавычках.

В конце функция удаляет последнюю запятую из строки и заканчивает ее символом }. Затем она возвращает полученную JSON-строку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *