在C#中解析JSON

本文关键字:JSON | 更新日期: 2023-09-27 18:19:53

我从一个RESTful API以JSON对象的形式得到一个响应。通常,当密钥已知时,我可以很好地解析它。例如,我创建了一个User类,如下所示:

[DataContract]
public class User
{
    [DataMember]
    public string id { get; set; }
    [DataMember]
    public string name { get; set; }
    [DataMember]
    public string email { get; set; }
}

我所要做的就是将响应拉入JSON反序列化程序,并告诉它输出是<用户>我很乐意去。在提出其他请求(如销售数据)时,这是不够的。我得到的回复是这样的:

{
  "2010-11-24": {
    "country": null,
    "iso": null,
    "product": null,
    "downloads": 39,
    "net_downloads": 38,
    "updates": 6,
    "revenue": "19.02",
    "returns": 1,
    "gift_redemptions": 0,
    "promos": 0
  },
  "2010-11-25": {
    "country": null,
    "iso": null,
    "product": null,
    "downloads": 63,
    "net_downloads": 63,
    "updates": 6,
    "revenue": "37.00",
    "returns": 0,
    "gift_redemptions": 0,
    "promos": 0
  }
}

如果我可以将这个类建模为[DataContract],那么我将是黄金,但由于第一个键是日期,我不能硬编码。

有没有一个JSON库可以接受这种响应并将其转换为强类型的C#类?

作为记录,我使用的是这个SO问题中使用的JSONHelper。

在C#中解析JSON

JSON.NET被公认为最好/最快/最稳定的JSON C#库。我用过它,它就像广告上说的那样管用。