JSON

.Net使用Newtonsoft.Json.dll(JSON.NET)对象序列化成json、反序(2)

字号+ 作者:H5之家 来源:H5之家 2017-05-22 13:05 我要评论( )

6、Newtonsoft.Json(JSON.NET)通过JRaw将JS函数序列化到JSON中 JavaScriptSettings settings = new JavaScriptSettings{OnLoadFunction = ),OnSucceedFunction = )}; string json = Newtonsoft.Json.JsonConvert.Se

6、Newtonsoft.Json(JSON.NET)通过JRaw将JS函数序列化到JSON中

JavaScriptSettings settings = new JavaScriptSettings { OnLoadFunction = ), OnSucceedFunction = ) }; string json = Newtonsoft.Json.JsonConvert.SerializeObject(settings, Newtonsoft.Json.Formatting.Indented); Console.WriteLine(json); public class JavaScriptSettings { public Newtonsoft.Json.Linq.JRaw OnLoadFunction { get; set; } public Newtonsoft.Json.Linq.JRaw OnSucceedFunction { get; set; } }

7、使用Newtonsoft.Json(JSON.NET)将json反序列化对象

string json = @"{ 'Email': '1930906722@qq.com', 'Active': true, 'CreatedDate': '2016-11-26 20:39', 'Roles': [ 'User', 'Admin' ] }"; Account account = Newtonsoft.Json.JsonConvert.DeserializeObject<Account>(json); Console.WriteLine(account.Email); public class Account { public string Name { get; set; } public string Email { get; set; } public bool Active { get; set; } public DateTime CreatedDate { get; set; } public IList<string> Roles { get; set; } }

执行结果:

8、使用Newtonsoft.Json(JSON.NET)反序列化List集合:

; List<string> videogames = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(json); Console.WriteLine(, videogames));

执行结果:

9、使用Newtonsoft.Json(JSON.NET)反序列化dictionary字典

; var htmlAttributes = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(json); Console.WriteLine(htmlAttributes[]); Console.WriteLine(htmlAttributes[]);

执行结果:

10、使用Newtonsoft.Json(JSON.NET)序列化var匿名类型,有时候,我们并不需要先定义一个类,然后new一个对象后再进行序列化,JSON.NET支持匿名类型的序列化和反序列化。

, Age = 26 }; var json = Newtonsoft.Json.JsonConvert.SerializeObject(test1); Console.WriteLine(json); Console.WriteLine(""); var test2 = new { Name = "", Age = 0 }; ; var result = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(json1, test2); Console.WriteLine(result.Name);

执行结果:

11、Newtonsoft.Json(JSON.NET)用新JSON字符串填充指定对象的属性值

Account account = new Account { Email = , Active = true, CreatedDate = DateTime.Now, Roles = , } }; ; Newtonsoft.Json.JsonConvert.PopulateObject(json, account); Console.WriteLine(account.Active); Console.WriteLine(account.Email); public class Account { public string Name { get; set; } public string Email { get; set; } public bool Active { get; set; } public DateTime CreatedDate { get; set; } public IList<string> Roles { get; set; } }

执行结果:

12、使用Newtonsoft.Json(JSON.NET)反序列化时可指定构造函数:

首先我们定义如下的类型,我们希望JSON.NET反序列化对象时使用第2个构造函数,我们将第一个默认构造函数屏蔽,标记为私有private修饰符。第2个构造函数需要指定一个website对象作为参数,如果提供的参数为null则抛出异常:

public class Website { public string Url { get; set; } private Website() { } public Website(Website website) { ); Url = website.Url; } }

现在使用一般的方式反序列化一个JSON字符串。执行出现的结果:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
r