私はXamarinとRiot Games APIを使用して簡単なアプリケーションを作成しようとしています。私は召喚者情報へのアクセスに問題があります。それは私の脱直列化が私が考えるように行われる方法のために私のユーザー名でのみ動作します。Riot GamesのAPI応答を解析する方法
これは私のコードです:
public async void GetSummonerInformation()
{
using (var client = new HttpClient())
{
var result = await client.GetStringAsync(url);
var res = JsonConvert.DeserializeObject<RootObject>(result);
sumName = res.psychoal3x.name;
}
}
public class Psychoal3x
{
public int id { get; set; }
public string name { get; set; }
public int profileIconId { get; set; }
public int summonerLevel { get; set; }
public long revisionDate { get; set; }
}
public class RootObject
{
public Psychoal3x psychoal3x { get; set; }
}
問題は、私は何か他のものに自分のユーザー名を変更した場合、それはRootObjectクラスでpsychoal3x
を検索しますので、それは動作しませんということです。誰でもこれを修正する方法を知っていますか?私は少しのコードを変更し、これはそれが
どのように見えるかあるので
EDIT
[OK]をこれでsumNameが変更されたアカウント名が変更されたコード
try
{
using (var httpClient = new HttpClient())
{
HttpResponseMessage response = httpClient.GetAsync(url).Result;
response.EnsureSuccessStatusCode();
string result = response.Content.ReadAsStringAsync().Result;
var data = JsonConvert.DeserializeObject<Dictionary<string, SummonerDto>>(result);
var name1 = data.First().Value.name;
var id = data.First().Value.id;
var profileIconId1 = data.First().Value.profileIconId;
var revisionDate1 = data.First().Value.revisionDate;
sumId = id;
sumProfileIconId = profileIconId1;
sumRevisionDate = revisionDate1;
System.Diagnostics.Debug.WriteLine("{0} this is the {1}", data.First().Value.name, data.First().Value.profileIconId);
}
}catch(Exception ex)
{ System.Diagnostics.Debug.WriteLine(ex.Message); }
public class SummonerDto
{
public int id { get; set; }
public string name { get; set; }
public int profileIconId { get; set; }
public int summonerLevel { get; set; }
public long revisionDate { get; set; }
}
APIが呼び出されます。
v1.0のAPIが出てきたとき、私はこのためにカップルのクライアントを作りました。しかし、それは1年ほど前であり、更新が必要です。ここに彼らはあります! https://github.com/JonDouglas/LoLFit/https://github.com/JonDouglas/LoLRank –