如何将JSON文档反序列化为Dictionary <string,list <object =“”>&gt;

时间:2016-06-07 19:36:56

标签: c# json azure-cosmosdb

我正在尝试将JSON文档反序列化为只使用我班级上的Json*标记的类。

当我的JSON文档看起来像这样时,我该怎么做?

{
   "id": "1",
   "name" : "test",
   "dictionary": [
                    {
                       "obj" : "a",
                       "list" : [{ "Id" : "1"} , { "Id" : "2"}]
                    },
                    {
                       "obj" : "b",
                       "list" : [{ "Id" : "3"} , { "Id" : "4"}]
                    }
                 ]

}

我的C#类看起来像这样:

public class Test
{
    [JsonProperty("id")]
    public string TestId {get;set;}

    [JsonProperty("name")]
    public string Name {get;set;}

    [JsonProperty("dictionary")]
    public Dictionary(string, List<object>) dict {get;set;}
}

但是,它无法反序列化到字典中。我的代码现在正在利用这样的documentDb查询:

var response = _client.CreateDocumentQuery<Test>(collection.DocumentsLink, "SELECT * FROM root r");

1 个答案:

答案 0 :(得分:0)

您需要为JSON对象图中的每个嵌套对象创建POCO类。

尝试使用以下类进行反序列化:

public class Test
{
    [JsonProperty("id")]
    public string TestId { get; set; }

    [JsonProperty("name")]
    public string Name { get; set; }

    [JsonProperty("dictionary")]
    public List<TestInnerItem> dictionary { get; set; }
}

public class TestInnerItem
{
    public string Obj { get; set; }

    public List<TestInnerInnerItem> List { get; set; }
}

public class TestInnerInnerItem
{
    public string Id { get; set; }
}