Я создаю JSON в Powershell, и я хочу установить собственную ширину вкладки при ее создании (вместо стандартных пробелов по умолчанию я хочу установить только 2 пробела).
Я делаю это, потому что:
- фактический JSON (не тот, который представлен в приведенном ниже примере) довольно большой (100k + rows), и если он не архивирован, размер его довольно большой; Если я уменьшу ширину табуляции, заметьте уменьшение размера.
- фактический JSON имеет глубину 5+ узлов!
- Я не могу использовать -Compress, так как JSON должен быть читаемым человеком
- Да, я согласен, если он заархивирован, размер значительно сокращается, но мне он также нужен.
Пример кода:
$object = New-Object PSObject
Add-Member -InputObject $object -MemberType NoteProperty -Name Phone -Value "SomePhone"
Add-Member -InputObject $object -MemberType NoteProperty -Name Description -Value "Lorem ipsum dolor.."
Add-Member -InputObject $object -MemberType NoteProperty -Name Price -Value 99.99
$object | ConvertTo-Json
Результат с шириной табуляции = 4 символа пробела.
{
"Phone": "SomePhone",
"Description": "Lorem ipsum dolor..",
"Price": 99.99
}
Я попробовал сжатие, но он не дает контроля над уровнем сжатия (как должно быть агрессивное сжатие)
$object | ConvertTo-Json -Compress
Результат сжат, очевидно.
{"Phone":"SomePhone","Description":"Lorem ipsum dolor..","Price":99.99}
То, что я пытаюсь достичь: результат с шириной табуляции = 2 символа пробела.
{
"Phone": "SomePhone",
"Description": "Lorem ipsum dolor..",
"Price": 99.99
}
То, что я пробовал до сих пор, приведено ниже в псевдокоде. Я все еще в курсе. Пожалуйста, вытащите меня оттуда:)
while (1) {
Google, StackOverflow
Try Stuff found
Tweak stuff found
if (Correct answer) {
break
}
}