C# dynamic类型序列化和反序列化之Newtonsoft.Json,动态解析远端返回的jSON数据
一、说明
1.Newtonsoft.Json 中的Linq To Json中提供了方便的json数据查询、修改等操作。
例如:JObject,JArray
2.在JObject.FromObject()或JArray.FromObject()中也提供了对dynamic类型的支持。
二、dynamic转json字符串处理
-
using Newtonsoft.Json;
-
using Newtonsoft.Json.Linq;
1.使用JObject对象
-
dynamic obj = new JObject();
-
obj.name = "张三丰";
-
obj.age = 10;
-
obj.birthday = DateTime.Now;
-
-
Console.WriteLine(obj.ToString());
输出结果:
-
{
-
"name": "张三丰",
-
"age": 10,
-
"birthday": "2017-07-29T16:39:47.4549601+08:00"
-
}
2.使用JObject.FromObject()
-
dynamic obj = new System.Dynamic.ExpandoObject();
-
obj.name = "张三丰";
-
obj.age = 10;
-
obj.birthday = DateTime.Now;
-
-
string result = JObject.FromObject(obj).ToString();
-
Console.WriteLine(result);
输出结果:同上
三、将json字符串发序列化为dynamic类型
-
string json = @"
-
{
-
'Title': 'Json.NET is awesome!',
-
'Author': {
-
'Name': 'James Newton-King',
-
'Twitter': '@JamesNK',
-
'Picture': '/jamesnk.png'
-
},
-
'Date': '2013-01-23T19:30:00',
-
'BodyHtml': '<h3>Title!</h3>\r\n<p>Content!</p>'
-
}
-
";
-
dynamic blogPost = JObject.Parse(json);
-
string title = blogPost.Title;
-
Console.WriteLine(title); //输出:Json.NET is awesome!
-
Console.WriteLine(blogPost.Date); //输出:2013/1/ 23 19:30:00
官方示例:
Querying JSON with dynamicCreate JSON with dynamic
更多:
C# Newtonsoft.Json JsonSerializerSettings配置序列化操作
C#Json序列化、反序列化之Dictionary 字典类型
C# Newtonsoft.Json之LINQ To Json实例(二)