Немного о PEBKAC, немного о том, почему это поведение?!
Кажется, проблема с -Depth
и логикой сокращения. Установка «более высокой глубины» приводит к тому, что поведение в обоих направлениях работает как положено. Наличие конца усечения в виде строки, в отличие от null
, кажется неудачным - хотя, возможно, и последовательным, если кто-то обнаружит, что «To String» - правильное завершение.
Изменить на "" (неожиданно):
PS> '{"a":[{"b":{}}]}' | ConvertFrom-Json | ConvertTo-Json -Compress -Depth 2
'{"a":[{"b":""}]}'
Туда и обратно (ожидается):
PS> '{"a":[{"b":{}}]}' | ConvertFrom-Json | ConvertTo-Json -Compress -Depth 3
'{"a":[{"b":{}}]}'