Ответ 1
Попробуйте без конвейера:
PS C:\> ConvertTo-Json @('one', 'two')
[
"one",
"two"
]
PS C:\> ConvertTo-Json @('one')
[
"one"
]
Я пытаюсь создать JSON-сериализованный массив. Когда этот массив содержит только один элемент, я получаю строку, а не массив строк (в JSON).
Несколько элементов (работает как ожидалось):
PS C:\> @("one", "two") | ConvertTo-JSON
[
"one",
"two"
]
Единый массив элементов (не как ожидалось):
PS C:\> @("one") | ConvertTo-JSON
"one"
Я что-то пропустил?
Попробуйте без конвейера:
PS C:\> ConvertTo-Json @('one', 'two')
[
"one",
"two"
]
PS C:\> ConvertTo-Json @('one')
[
"one"
]
Я тоже ударил по этой проблеме, но это было потому, что моя структура была слишком глубокой, и ConvertTo-Json сглаживает все под определенной глубиной до строки.
Например:
PS C:\> $MyObject = @{ "a" = @{ "b" = @{ "c" = @("d") } } }
PS C:\> ConvertTo-Json $MyObject
{
"a": {
"b": {
"c": "d"
}
}
}
Чтобы исправить это, вы можете передать большее значение в -Depth
PS C:\> ConvertTo-Json $MyObject -Depth 100
{
"a": {
"b": {
"c": [
"d"
]
}
}
}