JSON使用TypeNameHandling序列化与反序列化.NET类型和声明类型
2015-12-11 13:27
711 查看
1.先创建一个抽象类WildAnimal,再创建一个派生类Panda,最后创建一个含有抽象类集合的PandaInfo类.
2.序列化与反序列化
3.运行的结果
JSON源代码下载地址:http://download.csdn.net/detail/lovegonghui/9342751
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace JSONDemo { public abstract class WildAnimal { public string Name { get; set; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace JSONDemo { public class Panda : WildAnimal { public string Food { get; set; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace JSONDemo { public class PandaInfo { public int Lifetime { get; set; } public IList<WildAnimal> WildAnimal { get; set; } } }
2.序列化与反序列化
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using GongHuiNewtonsoft.Json; namespace JSONDemo { class Program { static void Main(string[] args) { PandaInfo info = new PandaInfo() { Lifetime = 25, WildAnimal = new List<WildAnimal> { new Panda { Name="Meimei", Food="bamboo" } } }; Console.WriteLine("----------序列化包含声明类型与.NET类型------------"); string all = JsonConvert.SerializeObject(info, Formatting.Indented, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }); Console.WriteLine(all); Console.WriteLine("--------------序列化包含.NET类型------------------"); string auto = JsonConvert.SerializeObject(info, Formatting.Indented, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto }); Console.WriteLine(auto); Console.WriteLine("--------------反序列化包含.NET类型----------------"); PandaInfo info2 = JsonConvert.DeserializeObject<PandaInfo>(auto, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto }); Console.WriteLine(info2.Lifetime); Panda p = info2.WildAnimal[0] as Panda; Console.WriteLine(p.Food); Console.WriteLine(p.Name); } } }
3.运行的结果
JSON源代码下载地址:http://download.csdn.net/detail/lovegonghui/9342751
相关文章推荐
- JS替换非正则替换
- 网易前端微专业,JavaScript程序设计基础篇:函数
- jsp表单的客户端验证
- json_encode 数值类型转换
- JS初学的一些易错的知识点
- jsp编写猜数字游戏
- jsp版计算器
- javaScript语法基础
- Javascript表单验证
- Json数据格式的使用方法入门教程
- JavaScript常用命令大全
- C#和网页js互调代码
- javascript变量的作用域--ExtJS scope必备法宝
- ajax请求中遇到的跨域问题的解决办法(jsonp)
- 10005---JavaScript--数据类型
- json 几天学习的小知识 总结~~
- JSON使用DateTimeZoneHandling序列化时时区与日期
- Zepto.js
- 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求
- jsp中为什么后台传递过来的数据没有空格 而jsp页面上用EL表达式接收就会显示有空格