|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Изменение строк json через конвертацию |
|
PowerShell - [решено] Изменение строк json через конвертацию
|
Новый участник Сообщения: 22 |
Добрый день всем!
У меня есть задача изменить определённые строки в json. Выполняю данную задачу через Powershell. Есть код, который спокойно это выполняет (кусок из кода, пример): $text = "C:\temp\ru-RU.json" $json = (Get-Content -raw $text -Encoding UTF8 | ConvertFrom-Json) $json.Base.NavMenu.Issues = "Архив вопросов" $json.Issue.StatusAction.8 = "Закрыт (Рассматривался)" $json | ConvertTo-Json -Depth 10 | Set-Content $text Изначальный json файл имеет два пробела в табуляции, когда я прохожусь скриптом он эти два пробела преобразовывает в дефольтне четыре пробела. Данную проблему смог решить другим кодом: ($json -split '\r\n' | ForEach-Object { $line = $_ if ($_ -match '^ +') { $len = $Matches[0].Length / 2 $line = ' ' * $len + $line.TrimStart() } $line }) -join "`r`n" Пример изначального вида json: { "404": { "Header": "Ошибка", "Message": "Страница не найдена", "ToMain": "Перейти на Рабочий стол" }, Подскажите, пожалуйста, как решить данную проблему, нагуглил уже всё что можно и ответа, увы не нашёл(( |
|
Отправлено: 13:37, 12-10-2022 |
Ветеран Сообщения: 1758
|
@" { "404": { "Header": "Ошибка", "Message": "Страница не найдена", "ToMain": "Перейти на Рабочий стол" } "@ -split "`n" -replace '\s{4}|(?<=:)\s+',' ' # т.е. (get-content file.json) -replace '\s{4}|(?<=:)\s+',' ' | set-content file.json <# { "404": { "Header": "Ошибка", "Message": "Страница не найдена", "ToMain": "Перейти на Рабочий стол" } #> |
Последний раз редактировалось Foreigner, 12-10-2022 в 15:18. Отправлено: 15:09, 12-10-2022 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата Njem:
- этот ключ совсем убирает форматирование... А какой версией powershell пользуетесь? |
|
------- Последний раз редактировалось YuS_2, 12-10-2022 в 15:22. Отправлено: 15:14, 12-10-2022 | #3 |
Ветеран Сообщения: 1758
|
Цитата YuS_2:
|
|
Отправлено: 15:20, 12-10-2022 | #4 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
Судя из того, что я нарыл в интернете пишут, что это как недоработка пробелов, которая была решена в версии 6.0. Попробовал на PowerShell 7.2.6 и там всё идеально отрабатывает, прям как нужно Но я ж не буду на всех устройствах где будет запускаться скрипт ставить версию поша 7.2.6) Цитата Foreigner:
|
|||
Отправлено: 16:03, 12-10-2022 | #5 |
Ветеран Сообщения: 1758
|
Njem, А какая разница? Им же не любоваться, а где-то использовать. Перфекционизм не имеет границ, но форматирование не влияет на функционал.
|
Отправлено: 16:15, 12-10-2022 | #6 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать Цитата:
По дефолту то везде 5.1 стоит обычно всегда) (ну если ОС плюс/минус современная вин10, вин11, ВинСерв2016+) |
|
Отправлено: 16:31, 12-10-2022 | #7 |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата Njem:
|
|
------- Отправлено: 16:32, 12-10-2022 | #8 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать Цитата:
![]() |
|
Отправлено: 16:36, 12-10-2022 | #9 |
Ветеран Сообщения: 1758
|
Цитата Njem:
https://github.com/PowerShell/PowerShell/releases |
|
Отправлено: 16:52, 12-10-2022 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Изменение метода поиска строк в конфиге | Stalker_AleX333 | Скриптовые языки администрирования Windows | 6 | 21-07-2019 15:42 | |
CMD/BAT - Изменение строк в файле | Nikugorsk | Скриптовые языки администрирования Windows | 13 | 08-06-2018 18:32 | |
Любой язык - JSON: settings.json в Visual Studio Code прокси | jkadaba | Скриптовые языки администрирования Windows | 0 | 14-04-2017 08:10 | |
Как ускорить конвертацию файлов? | man1 | Видео и аудио: обработка и кодирование | 12 | 26-07-2013 09:16 | |
Изменение порядка строк MySQL | ilan | Вебмастеру | 5 | 22-07-2003 11:05 |
|