Исключение десериализации Json при работе с RiotAPI Через Winforms

#c# #json #api #winforms

Вопрос:

пытаюсь десериализовать некоторые данные из Riot API, однако я получаю ошибки исключения. Они попадают в список вызывающих строк = JsonConvert.Десериализуетобъект<Список>((json)); моего RiotAPIForm.Cs.

 using Newtonsoft.Json;
using System.net;
using System.Windows.Forms;
using System.Collections.Generic;
using System;

namespace RiotAPI_ESavage
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }


    private void Form1_Load(object sender, EventArgs e)
    {
        WebClient client = new WebClient();
        string json = client.DownloadString("https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/Vine?api_key=KEYHERE");
        JsonConvert.DeserializeObject<List<SummonerV4>>((string)apiResponse);
        //MessageBox.Show(json); FOR TESTING 
    }

    public object apiResponse { get; private set; }

    private void GetAPIData_Click(object sender, EventArgs e)   //Move load into into click to give windowed response. 
    {
        WebClient client = new WebClient();
        string json = client.DownloadString("https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/Vine?api_key=KEYHERE");
        List<SummonerV4> Summoners = JsonConvert.DeserializeObject<List<SummonerV4>>((json));
        //var riotApi = RiotApi.NewInstance("RGAPI-b3258901-3962-4724-936d-e9b1878043dd");
        //var Summoner = riotApi.SummonerV4.GetBySummonerName(Region.NA, textBox1);
        //dataGridView1.DataSource = Summoners;



    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }
}
 

}
`
Это и есть призыв 4.CS, на который я ссылаюсь.

     public class SummonerV4
 

{

     public string ID { get; set; }
    public string AccountID { get; set; }
    public string PuuID { get; set; }
    public string Name { get; set; } 
    public int ProfileIconId { get; set; }    
    public long RevisionDate { get; set; }
    public long SummerLevel { get; set; }


}
 

Я в основном пытаюсь ввести имя пользователя, а затем вывести информацию RiotAPI в проект winforms.
Я очень новичок в программировании, поэтому очень ценю ваше терпение.

Комментарии:

1. Я получаю ошибки исключения .. можете ли вы предоставить подробную информацию и в идеале пример Json?

2. Кроме того, вы оставили свой фактический ключ API в вопросе! Если вы не можете просто изменить его, я предлагаю вам отредактировать вопрос, чтобы удалить его, и попросить модератора удалить его из истории вопросов. (Кстати, десериализация Json зависит от регистра в именах свойств)

3. Тип материала я хочу, чтобы выходные данные в поле данных будет выглядеть следующим образом { «идентификатор»: «ffVbrew02I7mPrqaSd9wsLG5Yk1ZcaNoxu6dpuqluc1-0s0», «методами accountid»: «OlnQsTk7UBWNVIclNES3xuazoF4m2XL-ab5f1umAHdActQ», «puuid»: «3SpqlqZL0JDtsCCPwJrlQO-G5SjbNzoyFGToN3EbpGreFSENaeu8zYWjtvsau1rqdoww-nMTZheBOg», «имя»: «PKultra», «profileIconId»: 4479, «revisionDate»: 1580760850000, «summonerLevel»: 106 } см developer.riotgames.com/apis#summoner-v4/GET_getBySummonerName

4. Я бы ожидал , что десериализация не вернет значения, поскольку свойства вашего класса не соответствуют свойствам Json (включая регистр!) — SummerLevel вместо summonerLevel , ProfileIconId вместо profileIconId — но без того, чтобы вы сообщили нам, какие исключения вы получаете, трудно понять, в чем может быть проблема.

5. Кроме того, предоставленный вами Json — это один объект, как говорится в документах, на которые вы ссылаетесь, но вы пытаетесь десериализовать его в список, что, как я подозреваю, может быть проблемой здесь.