Я использую PowerShell для изучения REST API. Я обнаружил странную аномалию. Когда я сериализую / описываю следующий объект, объект responses исчезает! Я убедился, что при преобразовании в объект .net все остается в рабочем состоянии, поэтому проблема возникает при преобразовании из объекта .net в JSON.
$json = @'
{
"stubs": [
{
"responses": [
{
"is": {
"body": "54"
}
},
{
"is": {
"body": "21"
}
},
{
"is": {
"body": "0"
}
}
]
}
]
}
'@
$json | ConvertFrom-Json | ConvertTo-Json
Результат преобразования выше:
{
"stubs": [
{
"responses": " "
}
]
}
Если я запускаю это, я получаю 54, как и ожидалось:
$json | ConvertFrom-Json | %{ $_.stubs.responses[0].is.body }
Я работаю на Ubuntu, но не думаю, что это должно иметь значение. Это должно быть легко проверить для кого-то в Windows.





ConvertTo-Json принимает необязательный параметр Depth, который (по какой-либо причине) по умолчанию равен 2. Сам параметр описан в связанных документах следующим образом:
Specifies how many levels of contained objects are included in the JSON representation. The default value is 2.
Если вы укажете более высокое значение для этого параметра, он будет работать - значение максимум равно 100:
$json | ConvertFrom-Json | ConvertTo-Json -Depth 100
Возможный дубликат Невозможно правильно преобразовать объекты PSCustomObjects в массиве обратно в JSON