Как преобразовать некоторые данные RAW из API и сохранить их в переменных, чтобы я мог работать с ними в C# - PullRequest
0 голосов
/ 01 мая 2020

Я работаю над личным проектом. Это приложение C#, которое взаимодействует с некоторыми веб-службами с помощью API.

Я наконец получил первые необработанные данные с помощью нескольких строк:

var client = new RestClient("https://api.abcd.com/token");
            var request = new RestRequest(Method.POST);
            request.AddParameter("username", usr);
            request.AddParameter("password", pass);
            request.AddParameter("grant_type", "password");

и в ответе почтальона (JSON) выглядит следующим образом:

{"access_token": "aaaaaaa", "token_type": "bearer", "expires_in": 899, "refresh_token": "bbbbbbb", "выпустил" : «Пт, 01 мая 2020 года 16:11:36 GMT», «. Expires»: «Пт, 01 мая 2020 года 16:26:36 GMT», «. Refreshexpires»: «Пт, 01 мая 2020 года 17:11:36 GMT "}

Мой следующий шаг - найти способ разделить эти пары ключ / значение на разные переменные в C#, чтобы я мог с ними работать.

спасибо много за помощь.

Ответы [ 3 ]

1 голос
/ 01 мая 2020

Вы хотите использовать десериализатор JSON для этого.

Таким образом, вы создадите класс:

public class Response {
  public string accessToken {get; set;)
  public string token_type {get; set;)
  .....
}

, а затем используйте что-то вроде Newtonsoft. Json (доступно от NuGet) для десериализации:

using Newtonsoft.Json;

.....

var response = JsonConvert.Deserialise<Response>([RAW TEXT FROM REST CLIENT]);
1 голос
/ 01 мая 2020

Но я полагаю, что для небольших целей не нужно создавать класс, скорее используйте слабо типизированную структуру данных, например:

dynamic responseObject = JsonConvert.DeserializeObject(responseString);
//then use every property like this
responseObject.accessToken ...
responseObject.token_type.....

Но для этого вам также нужно использовать Newtonsoft. Json.

0 голосов
/ 01 мая 2020

Вы можете использовать Json. Net, что позволит вам десериализовать JSON в объект, подобный этому. Обратите внимание, что вам необходимо загрузить пакет, а затем добавить using Newtonsoft.Json;

{
    "varone":"valueone"
}
public class MyJsonClass
{
    //JsonProperty isn't strictly required but I personally think it helps when trying to deserialize for sanity sake
    [JsonProperty("varone")]
    public string VarOneValue { get; set; } //The value will be "valueone" on deserialization
}
var myobj = JsonConvert.DeserializeObject<MyJsonObject>(JSONDATA);
Console.Write(myobj.VarOneValue); //Will be "valueone"

Nuget CLI: Install-Package Newtonsoft.Json

Страница: https://www.newtonsoft.com/json

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...