反序列化流阅读器
本文关键字:反序列化 | 更新日期: 2023-09-27 18:08:21
我试图反序列化一个流阅读器(从一个webRequest源),然后将json数据插入到一个对象,但对象从来没有得到数据。
WebRequest req = WebRequest.Create("API REQUEST HERE");
WebResponse responde = req.GetResponse();
StreamReader rd = new StreamReader(responde.GetResponseStream(), Encoding.ASCII);
Summoner summo = new Summoner();
JsonSerializer serializer = new JsonSerializer();
JsonTextReader textrd = new JsonTextReader(rd);
summo = serializer.Deserialize<Summoner>(textrd);
summo.Ver();
Console.ReadKey();
json响应是
{"amarasul":{"id":5560607,"name":"amarasul","profileIconId":787,"summonerLevel":30,"revisionDate":1439893886000}}
和summoner.cs是
public class Summoner
{
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 void Ver()
{
Console.WriteLine(this.id);
Console.WriteLine(this.name);
Console.WriteLine(this.profileIconId);
Console.WriteLine(this.revisionDate);
Console.WriteLine(this.summonerLevel);
}
}
问题是在JSON中有一个额外的层,一个名为amarasul的对象,它没有被解决。
如果你像下面这样改变你的召唤师职业,它应该工作得很好:
using System;
public class Summoner
{
public Amarasul amarasul { get; set; }
public void Ver()
{
Console.WriteLine(amarasul.id);
Console.WriteLine(amarasul.name);
Console.WriteLine(amarasul.profileIconId);
Console.WriteLine(amarasul.revisionDate);
Console.WriteLine(amarasul.summonerLevel);
}
}
public class Amarasul
{
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; }
}