博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# JSON字符串序列化与反序列化
阅读量:5276 次
发布时间:2019-06-14

本文共 1933 字,大约阅读时间需要 6 分钟。

C#将对象序列化成JSON字符串

public string GetJsonString()  {      List
products = new List
(){ new Product(){Name="苹果",Price=5.5}, new Product(){Name="橘子",Price=2.5}, new Product(){Name="干柿子",Price=16.00} }; ProductList productlist = new ProductList(); productlist.GetProducts = products; return new JavaScriptSerializer().Serialize(productlist)); } public class Product { public string Name { get; set; } public double Price { get; set; } } public class ProductList { public List
GetProducts { get; set; } }

这里主要是使用JavaScriptSerializer来实现序列化操作,这样我们就可以把对象转换成Json格式的字符串,生成的结果如下:

{
"GetProducts":[{
"Name":"苹果","Price":5.5},{
"Name":"橘子","Price":2.5},{
"Name":"柿子","Price":16}]}

如何将Json字符串转换成对象使用呢?

在实际开发中,经常有可能遇到用JS传递一个Json格式的字符串到后台使用,如果能自动将字符串转换成想要的对象,那进行遍历或其他操作时,就方便多了。那具体是如何实现的呢?

public static List
JSONStringToList
(this string JsonStr) { JavaScriptSerializer Serializer = new JavaScriptSerializer(); List
objs = Serializer.Deserialize
>(JsonStr); return objs; } public static T Deserialize
(string json) { T obj = Activator.CreateInstance
(); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json))) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); return (T)serializer.ReadObject(ms); } } string JsonStr = "[{Name:'苹果',Price:5.5},{Name:'橘子',Price:2.5},{Name:'柿子',Price:16}]"; List
products = new List
(); products = JSONStringToList
(JsonStr); foreach (var item in products) { Response.Write(item.Name + ":" + item.Price + "
"); } public class Product { public string Name { get; set; } public double Price { get; set; } }

在上面的例子中,可以很方便的将Json字符串转换成List对象,操作的时候就方便多了

转:    

转载于:https://www.cnblogs.com/wangfuyou/p/5824446.html

你可能感兴趣的文章
mysql启动过程
查看>>
2017前端面试题总结
查看>>
Http GetPost网络请求
查看>>
SWIFT国际资金清算系统
查看>>
Sping注解:注解和含义
查看>>
站立会议第四天
查看>>
如何快速掌握一门技术
查看>>
利用AMPScript获取Uber用户数据的访问权限
查看>>
vagrant 同时设置多个同步目录
查看>>
python接口自动化28-requests-html爬虫框架
查看>>
生成随机数的模板
查看>>
Mysql 数据库操作
查看>>
转:linux终端常用快捷键
查看>>
UVa 11059 最大乘积
查看>>
数组分割问题求两个子数组的和差值的小
查看>>
composer 报 zlib_decode(): data error
查看>>
hdu 3938 并查集
查看>>
《深入分析Java Web技术内幕》读书笔记之JVM内存管理
查看>>
python之GIL release (I/O open(file) socket time.sleep)
查看>>
软件开发与模型
查看>>