Здравствуйте, я хочу десериализовать класс, который содержит string
, bool
и List<[mystructtype>
;
. При использовании JsonConvert.Deserialize<[myclass]>
он десериализует string
и bool
правильно, но неList<[Struct]>
. Я также изменил List<struct>
с массивом structs
.
И контейнер class
, и struct
помечены Serializeable
, и я не понимаю, в чем проблема.Кто-нибудь может мне помочь?
Структура
[Serializable]
public struct Status
{
//identifiers
public long playerId { get; set; }
public long groupId { get; set; }
public int type { get; set; }
}
Контейнер класса
[Serializable]
class GatewayDeviceResponse
{
public bool status { get; set; } //gets deserialized good
public string message { get; set; } //gets deserialized good
public Status[] data { get; set; } // all members are defaults
}
Десериализация
IRestResponse response = client.Execute(request);
string result = Encoding.UTF8.GetString(response.RawBytes);
GatewayDeviceResponse resp = JsonConvert.DeserializeObject<GatewayDeviceResponse>(result);
return resp.data.ToList();
PS Строка является ответом от webserver
, и я использую RestSharp
для создания запроса к серверу и получения ответа.это response
строка хорошая. class
это deserialized
хорошо, исключая collection
.
В чем может быть проблема?
PS строковый ответ от сервера, который я получаю:
"{
\"status\":true,
\"message\":\"ok\",
\"data\":[
{
\"status\":{
\"playerId\":59,
\"groupId\":26,
\"type\":2,
\"deviceId\":\"abababa",
\"groupName\":\"srl\",
\"playerName\":\"Adrian\"
}
},
{
\"status\":{
\"playerId\":25,
\"groupId\":26,
\"type\":1,
\"deviceId\":\"lalal\",
\"groupName\":\"srl\",
\"playerName\":\"Alex\"
}
}
]
}"
Элементы массива Status[]
не должны быть полностью заполнены ответом сервера, только 3 поля, которые я разместил в POCO
/