Проблемы с десериализацией JSON из API VMWare (C#, System.Text.Json)C#

Место общения программистов C#
Ответить
Anonymous
 Проблемы с десериализацией JSON из API VMWare (C#, System.Text.Json)

Сообщение Anonymous »

Итак, я запрашиваю VMWare vCentre /api/vcenter/vm/{vmid}/guest/networking/interfaces и получаю следующий ответ:

Код: Выделить всё

[
{
"mac_address": "00:50:56:XX:XX:XX",
"ip": {
"ip_addresses": [
{
"ip_address": "1.2.3.4",
"prefix_length": 24,
"state": "PREFERRED"
}
]
},
"nic": "4000"
},
{
"mac_address": "00:50:56:YY:YY:YY",
"ip": {
"ip_addresses": [
{
"ip_address": "5.6.7.8",
"prefix_length": 27,
"state": "PREFERRED"
}
]
},
"nic": "4001"
}
]
А код такой:

Код: Выделить всё

public class VMNicIpAddress
{
public string ip_address { get; set; }
public int prefix_length { get; set; }
public string state { get; set; }
}

public class VMNicIp
{
List ip_addresses { get; set; }
}

public class VMNic
{
public string mac_address { get; set; }
public string nic {  get; set; }
public VMNicIp ip { get; set; }
}

string uri = $"/api/vcenter/vm/{vmid}/guest/networking/interfaces";
var ret = httpClient.GetAsync(uri).Result;
List VMNics = null;
if (ret.IsSuccessStatusCode)
{
VMNics = JsonSerializer.Deserialize(ret.Content.ReadAsStringAsync().Result);
}

... однако возвращаемый объект является допустимым объектом VMNic с допустимым свойством ip (!= null), но свойство ip_addresses этого объекта VMNicIp имеет значение null:

Код: Выделить всё

VMNICs is valid VMNic object
VMNICs.ip is valid VMNicIp object
VMNICs.ip.ip_addresses is null
...и я не могу понять почему. Я делаю что-то не так?

Подробнее здесь: https://stackoverflow.com/questions/797 ... -text-json
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»