C#中的JSON解析

3

我将从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解析器,并告诉它输出是一个<User>,然后我就可以开始工作了。但当进行其他请求时,例如销售数据,这种方法就显得不够用了。我收到的响应大致如下:

{
  "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。

密钥应表示为 string 还是 DateTime - svick
我会将其作为字符串或日期时间处理 - 没有关系。 - Nathan DeWitt
1个回答

5

JSON.NET 被认为是最好/最快/最稳定的 JSON C# 库。我使用过它,它的表现和宣传的一样。


所以,我已经下载并查看了文档。看起来我可以像以前一样创建一个类来将我的JSON反序列化,但我还是卡住了。如果我不知道键名,我该如何将其反序列化为一个类呢? - Nathan DeWitt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接