Следующий необработанный вывод (полученный из свойства RestResponse.Content) не десериализуется. Это потому, что в качестве префикса добавляется «ns1»? Есть ли что-то, что я делаю неправильно?RestSharp Deserialization не работает
Вот содержание сырого JSON возвращается при выполнении вызова:
{ "ns1.model-ответ-лист": { "@ дроссельный": "2", "@ Тотал-модели": "3372", "ns1.model-re sponses": {"ns1.model": [{"@ mh": "0x20e800", "ns1.attribute": {"@ id": "0x1006e", "$ Msgstr "" ":" 0 0 0 0 0 0 0 0 0 }]}, "ns1.link": {"@ rel": "next", "@ href": " http: // ipaddress/spectrum/restful/devices? id = 93fc1a07-60be-4dd5-964c-7 e8660dd3028 & start = 2 & throttlesize = 2 "," @ type ":" application/xml "}}}
class Program
{
static void Main(string[] args)
{
var client = new RestClient(Spectrum.Endpoints.Development);
client.Authenticator = new HttpBasicAuthenticator("myid", "mypassword");
var request = new RestRequest(Method.GET);
request.RequestFormat = DataFormat.Xml;
request.Resource = "devices?{attr}&{throttlesize}";
request.AddParameter("attr", Spectrum.Attributes.ModelName);
request.AddParameter("throttlesize", "2");
IRestResponse<ModelResponseList> response = client.Execute<ModelResponseList>(request);
Console.Write(response.Data.Throttle); // This line keeps returning 0, but should return 2
}
Вот классы, которые должны содержать данные:
[DeserializeAs(Name = "model-response-list")]
public class ModelResponseList
{
[DeserializeAs(Name = "throttle")]
public int Throttle { get; set; }
[DeserializeAs(Name = "total-models")]
public int TotalModels { get; set; }
[DeserializeAs(Name = "model-responses")]
public List<Model> ModelResponses { get; set; }
[DeserializeAs(Name = "link")]
public Link Link { get; set; }
}
public class Model
{
public string Mh { get; set; }
public ModelAttribute Attribute { get; set; }
}
public class ModelAttribute
{
public string Id { get; set; }
public string Value { get; set; }
}
public class Link
{
public string Rel { get; set; }
// Note! Href must be escaped, e.g. "&" => "&" or comment this prop out
public string Href { get; set; }
public string Type { get; set; }
}
Подождите, что? Сначала вы задаете вопрос, затем, после ответа на него, вы удаляете вопрос и копируете/вставляете мой ответ (определения классов выше) в новый вопрос? FTW, правда ?! –