在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。
JSON.NET被公认为最好/最快/最稳定的JSON C#库。我用过它,它就像广告上说的那样管用。