使用未知字段反序列化JSON

时间:2011-07-27 11:44:56

标签: silverlight field json.net deserialization

我正在尝试反序列化从外部源接收的一些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是什么,因此,我无法在具有该ID的专辑中创建一个字段。上传和标记的字段atre我认为在JSON.net中应该有一个选项来实现这一点,但我找不到它...

谢谢大家

1 个答案:

答案 0 :(得分:1)

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

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