Общий десериализатор не работает в одном случаеC#

Место общения программистов C#
Ответить
Anonymous
 Общий десериализатор не работает в одном случае

Сообщение Anonymous »

Я делаю http-вызов, и ответ возвращается в таком виде (Отредактировано)

Код: Выделить всё

{
"Theaters": [
{
"id": "259cf043-6195-42dd-bfdb-640969e0bfb9",
"name": "Theater1",
"slug": "Theater1",
"shows": [
{
"id": "73436465-1f14-400f-bfbf-ab6766269e70",
"name": "show1"
},
{
"id": "9a268b42-4f13-4f7a-9c7d-d40a30d7a6eb",
"name": "show2"
}
]
},
{
"id": "9c6a0933-e519-4d6e-b027-e6c47c60641b",
"name": "Theater3",
"slug": "Theater3",
"parks": [
{
"id": "18608db3e-fa23-4284-89dd-9fcd0wes9c9c",
"name": "show3"
}
]
}
]
}
Мои классы C#:

Код: Выделить всё

public class Theater
{
public Theater()
{
shows = new List();
}
public string id { get; set; }
public string name { get; set; }

public string slug { get; set; }

public ICollection shows { get; set; }

}

public class ShowBase
{
public string id { get; set; }
public string name { get; set; }

}

public class TheaterList
{
public TheaterList()
{
theaters= new List();
}
public List theaters;
}
Для получения результатов я использую общую функцию

Код: Выделить всё

public virtual async Task Get()
{
response = await client.GetAsync(URL);
Console.WriteLine(response.IsSuccessStatusCode);
string json = await response.Content.ReadAsStringAsync();
var data = JsonSerializer.Deserialize(json);
return (T)Convert.ChangeType(data, typeof(T));
}
Это не удается, поскольку эта полезная нагрузка возвращается пустой
Я вызывал ее двумя способами

Код: Выделить всё

var result = await TheaterGetter.Get();
и

Код: Выделить всё

var result = await TheaterGetter.Get();
Оба возвращаются пустыми и не должны.
Я тоже пробовал это, но получил сообщение об ошибке, сообщающее, что IConvertible необходимо реализовать.
р>

Код: Выделить всё

var result = await TheaterGetter.GetList();

Код: Выделить всё

public virtual async Task GetList()
{
response = await client.GetAsync(URL);
Console.WriteLine(response.IsSuccessStatusCode);
string json = await response.Content.ReadAsStringAsync();
var data = JsonSerializer.Deserialize(json);
return (List)Convert.ChangeType(data, typeof(T));
}
Будем благодарны за любую помощь

Подробнее здесь: https://stackoverflow.com/questions/790 ... n-one-case
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»