C # - десериализация результата объекта и отображение его в список из веб-API - PullRequest
0 голосов
/ 18 сентября 2018

Добрый день,

Я пытаюсь десериализовать список в моем API, но проблема в том, что API имеет объект.

Мой результат API выглядит следующим образом:

{
    result:[
    {
        "name": "Jessica"
    },
    {
        "name": "May"
    },
    {
        "name": "Joseph"
    }]
}

Это мой код для десериализации, который не работает, потому что я не получаю список из API, потому что result.

var httpClient = new HttpClient();

var task = await httpClient.GetStringAsync("http://something.com/api/whatever");

return JsonConvert.DeserializeObject<List<Whatever>>(task);

Мой Whatever.cs выглядит так

public class Whatever {
    public string Name {get;set;}
}

Есть ли способ, как я удаляю результат, чтобы иметь возможность десериализовать его как список, или есть какой-либо параметр, предоставляемый Newtonsoft.JSON, чтобы обрезать result и сделать его списком вместо объекта?

Заранее спасибо

1 Ответ

0 голосов
/ 18 сентября 2018

Ваш класс должен быть таким.

public class Result
{
    public string name { get; set; }
}

public class RootObject
{
    public List<Result> result { get; set; }
}

, и вы можете сериализовать этот json:

{
    result: [{
        'name': 'Jessica'
    },
    {
        'name': 'May'
    },
    {
        'name': 'Joseph'
    }]
}

Например:

var res = JsonConvert.DeserializeObject<RootObject>(jsonString);

для создания классаВы можете использовать json2csharp

...