原文:C# dynamic类型序列化和反序列化之Newtonsoft.Json
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011127019/article/details/76339170
一、说明
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配置序列化操作