Как десериализовать JSON в RestSharp?

1

Я только начинаю разрабатывать с помощью RestSharp и попал в ранний блокпост. Я думаю, как только я пойму эту простую, но ключевую, концепцию, я должен быть выключен и запущен. Мне нужно вернуть токен доступа, прежде чем принимать свои стандартные вызовы позже. Я создал следующие классы, созданные на json2csharp.com:

    public class AccessToken
{
    public string Instance_Url { get; set; }
    public string Token { get; set; }
    public string Expiration_date { get; set; }
    public string Refresh_Token { get; set; }
}

public class RootObject
{
    public AccessToken Access_Token { get; set; }
}

Я закодировал следующее нажатие кнопки:

        var tokenclient = new RestClient();
        tokenclient.BaseUrl = "https://url";
        tokenclient.Authenticator = new HttpBasicAuthenticator("username", "password");
        var tokenrequest = new RestRequest(Method.GET);
        tokenrequest.RequestFormat = DataFormat.Json;
        IRestResponse tokenresponse = tokenclient.Execute(tokenrequest);
        var content = tokenresponse.Content;
        RestSharp.Deserializers.JsonDeserializer deserial = new JsonDeserializer();
        var des = deserial.Deserialize<AccessToken>(tokenresponse);

Я могу вернуть следующий JSON в виде строки:

{
"Access_Token": {
"Instance_Url": "https://url",
"Token": "StringToken",
"Expiration_date": "9/30/2015 6:15:27 PM",
"Refresh_Token": "StringToken"
}
}

Однако, когда я вытаскиваю des.Token, он возвращает пустое значение. Может кто-нибудь любезно указать мою ошибку?

  • 3
    Вы пробовали deserial.Deserialize<RootObject>(tokenresponse) ?
  • 0
    Ух ты. Я знал, что это будет просто. Поэтому вместо des.Token он становится des.Access_Token.Token ... Спасибо! Вы спасли мне много ударов головой о мой стол.
Показать ещё 2 комментария
Теги:
restsharp

1 ответ

1
using Newtonsoft.Json;
var response = client.DownloadString(url + queryString);
ResponseModel<string> dataResponse = new ResponseModel<string>();
if (!string.IsNullOrEmpty(response))
{
        dataResponse = JsonConvert.DeserializeObject<ResponseModel<string>>(response);
}
  • 1
    Я думаю, что вопрос заключается в том, чтобы сделать это с помощью RestSharp, а не "Newtonsoft.Json".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню