【问题标题】:Deserializing JSON with unknown fields使用未知字段反序列化 JSON
【发布时间】:2011-07-27 11:44:56
【问题描述】:

我正在尝试反序列化从外部来源收到的一些 JSON(无法更改),但遇到了一些问题。我正在使用 JSON.net 进行反序列化,这是我收到的一个示例:

{
    "uploaded":
    {
        "name":"Uploaded by me",
        "size":3768,
        "last_change_time":1310470698
    },
    "tagged":
    {
        "name":"Photos I'm tagged in",
        "size":6937,
        "last_change_time":1311730303
    },
    "4019677_60607060":
    {
        "name":"Asad",
        "size":63,
        "last_change_time":1271315304
    },
    "4611824_60607060":
    {
        "name":"ASDF",
        "size":64,
        "last_change_time":1262645480
    }
}

这样,我创建了一个对象 Albums 和一个对象 Album

[DataContract]
public class Albums
{
    [DataMember]
    public Album uploaded  { get; set; }
    [DataMember]
    public Album tagged { get; set; }
}

[DataContract]
public class Album
{
    [DataMember]
    public string name { get; set; }
    [DataMember]
    public int size { get; set; }
    [DataMember]
    public int last_change_time { get; set; }
}

如您所见,对于 Albums 对象,我遇到了问题,因为我无法知道专辑的 id 是什么,因此我无法在 Albums 中使用该 id 创建字段。上传和标记的字段 atre 我认为 JSON.net 中应该有一个选项来实现这一点,但我找不到它......

谢谢大家

【问题讨论】:

    标签: silverlight field json.net deserialization


    【解决方案1】:

    收到的 JSON 似乎是一个字典..

    您是否尝试反序列化为 Dictionnary<string,Album>

    【讨论】:

    • 耶!无法想象我以前怎么没有看到它...谢谢!
    猜你喜欢
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多