【问题标题】:How to parse multiple records in Json如何解析Json中的多条记录
【发布时间】:2013-11-25 01:20:30
【问题描述】:

您好,我正在尝试将 Json 响应解析为一个类。所以这是响应的样子......

[{"id":103,"customer_id":0},{"id":110,"customer_id":1}]

我能够很好地解析一行(我删除了 '[' ']' 并将其放入一个类中)。问题是当我有多个像这样的记录时,我遇到了问题。这就是我解析数据的方式...

        [DataContract]
public class Order
{
    public List<OrderRow> Orders { get; set; }
}

[DataContract]
public class OrderRow
{
    [DataMember(Name = "id")]
    public int id { get; set; }
    [DataMember(Name = "customer_id")]
    public int customer_id { get; set; }
}

StreamReader jfile = new StreamReader(@"path\test.json");
string json = jfile.ReadToEnd();
jfile.Close();

byte[] bytes = Encoding.UTF8.GetBytes(json);
MemoryStream mStream = new MemoryStream(bytes);

DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Order));
Order jsonOrder = (Order)serializer.ReadObject(mStream);

【问题讨论】:

    标签: c# .net json parsing


    【解决方案1】:

    不要创建Order类,而是尝试将其直接反序列化为OrderRow[]数组:

    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(OrderRow[]));
    OrderRow[] jsonOrderRows = (OrderRow[])serializer.ReadObject(mStream);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      • 2020-02-19
      • 2022-01-12
      • 2019-03-08
      • 2014-05-30
      • 1970-01-01
      • 2013-06-04
      相关资源
      最近更新 更多