C# JSON字符串序列化与反序列化常见模型举例
2015-07-26 22:47
453 查看
C#中实体转Json常用的类JavaScriptSerializer,该类位于using System.Web.Script.Serialization;命名空间中,添加引用system.web.extensions。常见序列化和反序列化的方法如下:
C#中实体转JSON常用的实例情况:
第一种JSON格式:
{"Name":"苹果","Price":5.5}
该类型的json,对应的实体就是一个类,里面两个属性name和price,对应如下:
第二种JSON格式:
{"GetProducts":[{"Name":"苹果","Price":5.5},{"Name":"橘子","Price":2.5},{"Name":"柿子","Price":16}]}
对应的类封装如下:
封装的时候,只需要封装ProductList实例;
第三种:
{"GetProducts":["5841526","985423","23366368"]}
这种json对应的C#类如下:
第四种:
{"GetProducts":[{"Name":"5841526"},{"Price",985423}]}
这种json有点难度,但是我们c#也能转化,对应的C#类如下:
这就是我总结的常见四种json对应的序列化方式。JavaScriptSerializer是一款不错的json序列化的工具,用好了就是神器,晚安!
public static List<T> JSONStringToList<T>(this string JsonStr) { JavaScriptSerializer Serializer = new JavaScriptSerializer(); List<T> objs = Serializer.Deserialize<List<T>>(JsonStr); return objs; } public static T Deserialize<T>(string json) { T obj = Activator.CreateInstance<T>(); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json))) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); return (T)serializer.ReadObject(ms); } }
C#中实体转JSON常用的实例情况:
第一种JSON格式:
{"Name":"苹果","Price":5.5}
该类型的json,对应的实体就是一个类,里面两个属性name和price,对应如下:
public class Product { public string Name { get; set; } public double Price { get; set; } }
第二种JSON格式:
{"GetProducts":[{"Name":"苹果","Price":5.5},{"Name":"橘子","Price":2.5},{"Name":"柿子","Price":16}]}
对应的类封装如下:
public class Product { public string Name { get; set; } public double Price { get; set; } } public class ProductList { public List<Product> GetProducts { get; set; } }
封装的时候,只需要封装ProductList实例;
第三种:
{"GetProducts":["5841526","985423","23366368"]}
这种json对应的C#类如下:
public class ProductList { public List<string> GetProductsname=new List<string>( ){"5841526","985423","23366368"}; }
第四种:
{"GetProducts":[{"Name":"5841526"},{"Price",985423}]}
这种json有点难度,但是我们c#也能转化,对应的C#类如下:
public class Product { public string Name { get; set; } } public class Pnum { public double Price { get; set; } } public class ProductList { public List<object> GetProducts { get; set; } } public static string GetJsonString() { List<object> products = new List<object>() { new Product(){Name="苹果"}, new Pnum(){ Price=3.2} }; ProductList pl = new ProductList() { GetProducts = products }; return new JavaScriptSerializer().Serialize(pl); }
这就是我总结的常见四种json对应的序列化方式。JavaScriptSerializer是一款不错的json序列化的工具,用好了就是神器,晚安!
相关文章推荐
- js 动态生成html 触发事件传参字符转义
- Javascript之base.js原型那些事儿
- 【转】Backbone.js学习笔记(二)细说MVC
- 【转】Backbone.js学习笔记(一)
- javascript 毫秒转日期 日期时间转毫秒
- Golang中解析json,构造json
- JSP九大内置对象
- json数据语法格式
- javascript之变量
- js面向对象理解
- Javascript MVC 学习笔记(三) 视图和模板
- 判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
- 异步JS
- [ExtJS5学习笔记]第22 Extjs5正在使用beforeLabelTpl添加所需的配置选项标注星号标记
- jsoup抓取数据
- js 排序 冒泡排序,选择排序,插入排序
- JS判断SharePoint页面编辑状态
- 高端黑链SEO—恶意JS脚本注入访问伪随机域名
- ExtJs4 layout 布局
- 关于jsp页面跳转及参数传递的问题