反序列化流阅读器

本文关键字:反序列化 | 更新日期: 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; }
}