Невозможно десериализовать RestResponse с RestSharp C # - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь десериализовать объект JSON в C #, но не могу избавиться от этой ошибки компилятора.Любая помощь будет высоко ценится.

JSON

{
  AX:{BX:1777} 
}

Вот мои классы десериализатора:

Response.cs

{
    public class Response
    {
        public AX Ax { get; set; }
    }
}

AX.cs

{
    public class AX
    {
        public long Bx { get; set; }
    }
}

Вот проблемная строка:

IRestResponse<Response> response = client.Execute<Response>(request);

response.Content так же хорошо и возвращает необработанный JSON, но я хочу, чтобы он был экземпляром класса Response,Я хочу получить доступ к Bx следующим образом:

var price = response.Ax.Bx; // should return 1777

Но эта строка выдает следующую ошибку компилятора:

Error: IRestResponse does not contain definition for 'Ax'

1 Ответ

0 голосов
/ 01 октября 2018

Проблема с учетом регистра.Сериализатор RestSharp ожидает следующую структуру json

{
  Ax:{Bx:1777} 
}

У вас есть 3 способа справиться с этим:

1) добавить DataContract и DataMember к вашим классам

[DataContract]
public class Response
{
    [DataMember(Name = "AX")]
    public AX Ax { get; set; }
}

[DataContract]
public class AX
{
    [DataMember(Name = "BX")]
    public long Bx { get; set; }
}

2)написать свой собственный сериализатор, который игнорирует регистр, и использовать его с restsharp

3) изменить структуру json

...