【问题标题】:Deserialize Json into object of type T returns 0将 Json 反序列化为 T 类型的对象返回 0
【发布时间】:2014-08-25 09:41:30
【问题描述】:

我正在尝试反序列化对 List 的 JSON 响应,它总是返回 0。请查看下面的代码并提出修复建议。

JSON 数据:-

tripSeats = {"seats":[
  {"available":"true","baseFare":"600","serviceTaxAbsolute":"0"},
  {"available":"true","baseFare":"600","serviceTaxAbsolute":"0"}
]}

我的课程:-

public class Seat
{
   public string available { get; set; }
   public string baseFare { get; set; }
   public string serviceTaxAbsolute { get; set; }
}

public class Seats
{
   public List<Seat> seats { get; set; }
}

现在我正在尝试反序列化 JSON 数据并将其存储在 List 对象中,如下所示

JavaScriptSerializer ser = new JavaScriptSerializer();
List<Seats> seats = ser.Deserialize<List<Seats>>(tripSeats.ToString());

它什么也不做,当我调试代码时,我看到席位为 0。

【问题讨论】:

    标签: c# .net json serialization


    【解决方案1】:

    问题是您试图将Seats 对象反序列化为List&lt;Seats&gt;&gt;。 您要么需要将其更改为List&lt;Seat&gt;,要么只需使用Seats:

    JavaScriptSerializer ser = new JavaScriptSerializer();
    Seats seats = ser.Deserialize<Seats>(tripSeats);
    

    或

    JavaScriptSerializer ser = new JavaScriptSerializer();
    List<Seat> seats = ser.Deserialize<List<Seat>>(tripSeats);
    

    【讨论】:

    • 感谢 Yuval,席位 = ser.Deserialize(tripSeats);工作。
    【解决方案2】:

    试试这样的:

    public class Seat
    {
        public string available { get; set; }
        public string baseFare { get; set; }
        public string serviceTaxAbsolute { get; set; }
        public Seat() { }
    }
    
    string text = "[{\"available\":\"true\",\"baseFare\":\"600\",\"serviceTaxAbsolute\":\"0\"},{\"available\":\"true\",\"baseFare\":\"600\",\"serviceTaxAbsolute\":\"0\"}]";
    List<Seat> seats = new List<Seat>();
    public MainPage()
    {
         this.InitializeComponent();
         seats = JsonConvert.DeserializeObject<List<Seat>>(text);
    }
    

    【讨论】:

    • tripSeats = {"seats":[ {"available":"true","baseFare":"600","serviceTaxAbsolute":"0"}, {"available":"true" ,"baseFare":"600","serviceTaxAbsolute":"0"} ]};
    猜你喜欢
    • 2013-11-20
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多