Нужна помощь в сборе данных ответов API коэффициентов спортивных ставок (C#, API, Json)C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Нужна помощь в сборе данных ответов API коэффициентов спортивных ставок (C#, API, Json)

Сообщение Anonymous »

Я работаю над веб-сервисом для получения коэффициентов спортивных ставок с помощью вызовов API. Я создал отдельные классы C# для сбора данных Json ответа, но у меня возникли проблемы с десериализацией Json в корневой объект.
Во-первых, вот пример ответа JSON (извините по поводу форматирования, форматировалось в редакторе поста):
[
{
"id": "b600186d2dc2ace2fa5ac10c04e17059",
"sport_key": "basketball_nba",
"sport_title": "NBA",
"commence_time": "2024-11-23T00:10:00Z",
"home_team": "Вашингтон Wizards",
"away_team": "Бостон Селтикс",
"букмекеры": [
{
"key": "draftkings",
"title": "DraftKings",
"last_update": "2024-11-22T08:49:50Z",
"markets": [
{
"key": "h2h",
"last_update": "2024-11-22T08:49:50Z",
"outcomes": [
{
"name ": "Бостон Селтикс",
"цена": -1200
},
{
"name": "Вашингтон Волшебники",
"цена": 750
}
]
}
]
}
]
},
]
Мне нужно записать как минимум следующие поля:
  • home_team
  • выездная_команда
  • время_начала
  • букмекерские конторы/ключевые
  • рынки/результаты/< strong>название
  • рынки/результаты/цена
Сейчас , вот мои классы из моего проекта C#:

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

    public class Rootobject
{
public OddsData[] Property1 { get; set; }
}

public class OddsData
{
public string id { get; set; }
public string sport_key { get; set; }
public string sport_title { get; set; }
public DateTime commence_time { get; set; }
public string home_team { get; set; }
public string away_team { get; set; }
public Bookmaker[] bookmakers { get; set; }
}

public class Bookmaker
{
public string key { get; set; }
public string title { get; set; }
public DateTime last_update { get; set; }
public Market[] markets { get; set; }
}

public class Market
{
public string key { get; set; }
public DateTime last_update { get; set; }
public Outcome[] outcomes { get; set; }
}

public class Outcome
{
public string name { get; set; }
public int price { get; set; }
}
Вот где я получаю ответ и пытаюсь десериализовать данные:

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

sportsKey = "basketball_nba"; // NBA
string url = "https://api.the-odds-api.com/v4/sports/" + sportsKey + @"/odds?regions=us&oddsFormat=american&apiKey={...}";
var client = new RestClient(url);
client.Timeout = -1;
var request = new RestRequest(Method.GET);
var response = client.Execute(request);
var oddsApiResponse = response.Content;

// Deserialize Json resonse
OddsData od = System.Text.Json.JsonSerializer.Deserialize(oddsApiResponse);
Я вижу следующую ошибку:
System.Text.Json.JsonException: 'Значение JSON не удалось преобразовать в OddsAPIRettriever .Программа+Данные о шансах. Путь: $ | НомерЛинии: 0 | BytePositionInLine: 1.'
Есть идеи, что я делаю неправильно при десериализации?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/792 ... c-api-json
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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