C# 使用JSON转换器转换此JSON格式

C# 使用JSON转换器转换此JSON格式,c#,json,C#,Json,我正在生成下面的JSON格式,有人能告诉我如何将其转换回我的类吗 ["Node1",{"DictionaryNode1_1":"NodeValue1","DictionaryNode1_2":"NodeValue2","DictionaryNode1_3":"NodeValue3"},["Node11",{"DictionaryNode11_1":"NodeValue1","DictionaryNode11_2":"NodeValue2","DictionaryNode11_3":"NodeVa

我正在生成下面的JSON格式,有人能告诉我如何将其转换回我的类吗

["Node1",{"DictionaryNode1_1":"NodeValue1","DictionaryNode1_2":"NodeValue2","DictionaryNode1_3":"NodeValue3"},["Node11",{"DictionaryNode11_1":"NodeValue1","DictionaryNode11_2":"NodeValue2","DictionaryNode11_3":"NodeValue3"},"Node12",null,["Node121",null,["Node1211",{"DictionaryNode1211_1":"NodeValue1","DictionaryNode1211_2":"NodeValue2","DictionaryNode1211_3":"NodeValue3"}]]],"Node2",null,["Node21","Node22"]]

如何使用下面的转换器方法实现这一点

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
}
下面是要转换的类

[JsonConverter(typeof(TreeNodeConverter))]
public class SubTreeNode : TreeNode
{
    private Dictionary<string, string> _dicAttr;

    public Dictionary<string,string> dicAttr
    {
        get
        {
            return _dicAttr;
        }
        set
        {
            _dicAttr = value;
        }
    }
}
[JsonConverter(typeof(TreeNodeConverter))]
公共类子屏幕:TreeNode
{
私人词典;
公共词典
{
得到
{
返回指示;
}
设置
{
_dicAttr=数值;
}
}
}
您可以使用来完成JSON序列化字符串上的几乎所有操作。对于您的示例,如果我理解正确,您只需要将字符串反序列化为
字典
(或
字典
…)类型,因此这里有一些主题需要考虑:
-
-
-

以下是Json.net中的示例,反序列化为:


您应该查看JSON.NET。它有一个非常好的文档,它肯定会有助于满足您使用json进行操作的所有需求

这里是链接

这里是

string json = @"[
  {
    'Title': 'Json.NET is awesome!',
    'Author': {
      'Name': 'James Newton-King',
      'Twitter': '@JamesNK',
      'Picture': '/jamesnk.png'
    },
    'Date': '2013-01-23T19:30:00',
    'BodyHtml': '&lt;h3&gt;Title!&lt;/h3&gt;\r\n&lt;p&gt;Content!&lt;/p&gt;'
  }
]";

dynamic blogPosts = JArray.Parse(json);

dynamic blogPost = blogPosts[0];

string title = blogPost.Title;

Console.WriteLine(title);
// Json.NET is awesome!

string author = blogPost.Author.Name;

Console.WriteLine(author);
// James Newton-King

DateTime postDate = blogPost.Date;

Console.WriteLine(postDate);
// 23/01/2013 7:30:00 p.m.