【发布时间】:2015-12-31 20:20:44
【问题描述】:
我是堆栈溢出的新手,我是初学者。 我想做一个关于英雄联盟的应用程序,但我有一个问题。我只是不知道如何将 json 反序列化为对象。
这是我尝试过的
public class LOL
{
public User user { get; set; }
}
public class User
{
public int id { get; set; }
public string name { get; set; }
public int profileIconId { get; set; }
public long revisionDate { get; set; }
public int summonerLevel { get; set; }
}
这些是我使用网站http://json2csharp.com/ 创建的类。
我刚刚把这些类的名字改成了我喜欢的名字
这是我调用 API 的另一个类
public class LOLFacade
{
private const string APIKey = "secret :D";
public async static Task<LOL> ConnectToRiot(string user)
{
var http = new HttpClient();
string riotURL = String.Format("https://eune.api.pvp.net/api/lol/eune/v1.4/summoner/by-name/{0}?api_key={1}", user, APIKey);
var response = await http.GetAsync(riotURL);
var result = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<LOL>(result);
}
}
这是我使用 API 的地方
private async void GetUserInfo_Click(object sender, RoutedEventArgs e)
{
LOL user = await LOLFacade.ConnectToRiot("gigaxel");
string name = user.user.name;
int level = user.user.summonerLevel;
InfoTextBlock.Text = name + " is level " + level;
}
当我执行我的代码时,我总是得到这个错误:(:
对象引用未设置为对象的实例。
这是 Json:
{“千兆像素”:{ “身份证”:36588106, “名称”:“千兆像素”, "profileIconId": 713, “修订日期”:1451494377000, “召唤师等级”:30 }}
如果有人可以帮助我,我将不胜感激。我刚开始,我认为我在这段代码中犯了很多错误,但如果你能帮助我,我将不胜感激:D
【问题讨论】:
-
在哪一行代码中出现此错误。
-
这是一个很容易解决的异常。