将Treeview序列化为JSON并反序列化回Treeview

时间:2016-02-10 16:30:41

标签: c# .net json

我需要将Treeview节点序列化为JSON格式并反序列化回Treeview。

我有一个自定义的SubNode类,如下所示

Class SubNode: TreeNode
{
    dynamic obj;
}

因此,当创建树节点时,每个节点中也会有一个复杂的对象,如下所示。

SubNode sub = new SubNode();
sub.obj.property = "Value1"
sub.obj.Complex.Prooerty = "Value2"

等......

您能告诉我们我们是如何实现这一目标的吗?提前感谢一百万!

1 个答案:

答案 0 :(得分:0)

查看现有的库,着名的库正在使用JSON.NET。您可以查看有关如何执行此操作的示例。

序列化对象

public class Account
{
    public string Email { get; set; }
    public bool Active { get; set; }
    public DateTime CreatedDate { get; set; }
    public IList<string> Roles { get; set; }
}

Account account = new Account
 {
     Email = "james@example.com",
     Active = true,
     CreatedDate = new DateTime(2013, 1, 20, 0, 0, 0, DateTimeKind.Utc),
     Roles = new List<string>
     {
         "User",
         "Admin"
    }
};

string json = JsonConvert.SerializeObject(account, Formatting.Indented);
// {
//   "Email": "james@example.com",
//   "Active": true,
//   "CreatedDate": "2013-01-20T00:00:00Z",
//   "Roles": [
//     "User",
//     "Admin"
//   ]
// }

Console.WriteLine(json);

反序列化对象

string json = @"{
   'Email': 'james@example.com',
   'Active': true,
   'CreatedDate': '2013-01-20T00:00:00Z',
   'Roles': [
     'User',
     'Admin'
   ]
 }";

Account account = JsonConvert.DeserializeObject<Account>(json);

Console.WriteLine(account.Email);