.NET中JSON的序列化和反序列化
.NET 中有两种方法进行JSON的操作分别需要引用不同的命名空间
1.System.Runtime.Serialization.Json(System.Runtime.Serialization.dll)
public class JsonHelper {/// <summary>/// 生成Json格式/// </summary>/// <typeparam name="T"></typeparam>/// <param name="obj"></param>/// <returns></returns>public static string GetJson<T>(T obj){DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());using (MemoryStream stream = new MemoryStream()){json.WriteObject(stream, obj);string szJson = Encoding.UTF8.GetString(stream.ToArray()); return szJson;}}/// <summary>/// 获取Json的Model/// </summary>/// <typeparam name="T"></typeparam>/// <param name="szJson"></param>/// <returns></returns>public static T ParseFromJson<T>(string szJson){T obj = Activator.CreateInstance<T>();using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson))){DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());return (T)serializer.ReadObject(ms);}} }public class topMenu {public string id { get; set; }public string title { get; set; }public string defaulturl { get; set; } }
具体的操作代码
topMenu t_menu = new topMenu(){id = "1",title = "全局",defaulturl = "123456"}; List<topMenu> l_topmenu = new List<topMenu>(); for (int i = 0; i < 3; i++){l_topmenu.Add(t_menu);} Response.Write(JsonHelper.GetJson<List<topMenu>>(l_topmenu));
输出结果为:
[{"defaulturl":"123456","id":"1","title":"全局"},{"defaulturl":"123456","id":"1","title":"全局"},{"defaulturl":"123456","id":"1","title":"全局"}]
下面利用上面ParseFromJson方法读取Json
输出结果为:全局
string szJson = @"{""id"":""1"",""title"":""全局"",""defaulturl"":""123456""} ";topMenu t_menu2 = JsonHelper.ParseFromJson<topMenu>(szJson);Response.Write(t_menu2.title);
2.System.Web.Script.Serialization(System.Web.Extensions.dll)
JavaScriptSerializer jss = new JavaScriptSerializer(); Response.Write( jss.Serialize(l_topmenu ));
string szJson = @"{""id"":""1"",""title"":""全局"",""defaulturl"":""123456""} "; topMenu toptabmenu = jss.Deserialize<topMenu>(szJson); Response.Write( jss.Serialize(toptabmenu.title));
转载于:https://www.cnblogs.com/answercard/p/4916087.html
.NET中JSON的序列化和反序列化相关推荐
- ASP.NET中JSON的序列化和反序列化
JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...
- 一起谈.NET技术,ASP.NET 中JSON 的序列化和反序列化
JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...
- python序列化和反序列化_Python 中 json 数据序列化和反序列化
1.Json 定义 定义:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.JSON 的数据格式其实就是 python 里面的字典格式,里 ...
- c语言josn序列化和反序列化,Flutter 中 JSON 的序列化和反序列化
前言 Flutter 中没有类似于 Java 中 Gson/Jackson 这样的 JSON 序列化库. 因为这些库都是通过反射实现的,而 Flutter 中不支持反射. 其实 Dart 是支持反射的 ...
- 转载:ASP.NET中JSON的序列化和反序列化
http://www.cnblogs.com/zhaozhan/archive/2011/01/09/1931340.html http://hi.baidu.com/%B1%F9%D1%A9%D2% ...
- 在C#中,Json的序列化和反序列化的几种方式总结
在C#中,Json的序列化和反序列化的几种方式总结 在这篇文章中,我们将会学到如何使用C#,来序列化对象成为Json格式的数据,以及如何反序列化Json数据到对象. 什么是JSON? JSON (Ja ...
- C#中的Json的序列化和反序列化
Json是一种通用的数据格式,我们在数据交换的时候,经常会用到,下面介绍c#中的json序列化和反序列化,当然也可用在asp.net,silverlight,wpf中.我们在下面实例讲解如何进行Jso ...
- Newtonsoft.Json 的序列化与反序列化
首先补充一点,Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Framework和NHibernate的.我举例说明DataTable的序列化和反序列化. 创建 ...
- Json.Net系列教程 3.Json.Net序列化和反序列化设置
上节补充 首先补充一点,Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Framework和NHibernate的.我举例说明DataTable的序列化和反序列 ...
最新文章
- Asp.net MVC 3实例学习之ExtShop(五)——产品详细页
- 生理性玻璃体混浊的分类与预防控制
- 在Javascript中实现伪哈希表
- 华为交换机恢复出厂设置
- Error generating final archive: Debug Certificate expired on 的错误解决方法
- Leetcode-1156 Swap For Maximum Repeated Substring(单字符重复子串的最大长度)
- 频率和概率、平均值和期望值
- L1-078 吉老师的回归 (15 分)-PAT 团体程序设计天梯赛 GPLT
- 8_19 比赛总结 [暑假集训]
- DNN与微软同声传译系统背后的故事
- JAVA集合系列(1):集合的整体框架
- 计算机监控系统sacad,一套幼儿园智能化弱电CAD设计图,可以作为投标技术文件模板...
- BurpSuite 1.6~2.x版本汉化版工具
- 电子教室的功能有哪些-极域电子教室
- CodeForces 964A Splits
- 【云原生】云原生在网络安全领域的应用
- 数据标准化方法z-score讲解(matlab)
- win10系统如何格式化
- Web全栈开发训练营
- 读透《阿里巴巴数据中台实践》,其到底有什么高明之处?
热门文章
- ros melodic学习之plugin
- python写机器人程序_从Python写入机器人框架控制台
- 2020秋招CV面试知识点汇总
- php 提取二维数组的key,PHP 获取二维数组中某个key的集合
- 使用计算机解决问题的本质,(新教材)教科版高中信息技术必修一 2.1 计算机解决问题的过程 课件(共25张PPT)...
- 开发过程中常用的 dos 命令
- 计算机二级是要报所有科目吗,我要报考计算机等级考试二级,是全部科目都要考吗?...
- matlab练习程序(构造简单多边形)
- 创建一个对象和i++是否原子性的理解
- 字符串匹配KMP算法的讲解C++