几个用于序列化的代码片段
参考
JavaScriptSerializer,一般用来做JSON格式化
http://msdn.microsoft.com/zh-cn/library/system.web.script.serialization.javascriptserializer.aspx
http://msdn.microsoft.com/zh-cn/library/system.web.script.serialization.javascriptconverter.aspx
DataContractSerializer,可以用来做XML,JSON格式化,可以将格式化内容直接写入流
http://msdn.microsoft.com/zh-cn/library/system.runtime.serialization.datacontractserializer.aspx
代码片段:
//**************序列化实体**********************using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Xml.Serialization; namespace PM.WebForm.common{///<summary>/// 服务器列表///</summary> [XmlRoot("Root")]public class serverlist {///<summary>/// 服务器IP///</summary> [XmlAttribute("serverip")]public string serverip { set; get; }///<summary>/// 服务器域名,如http://www.163.com////</summary> [XmlAttribute("server_url")]public string server_url { set; get; }///<summary>/// s_key,服务器间加密s_key,很重要///</summary> [XmlAttribute("s_key")]public string s_key { set; get; }///<summary>/// 合作编号///</summary> [XmlAttribute("pid")]public string pid { set; get; }///<summary>/// 注册渠道ID///</summary> [XmlAttribute("sid")]public string sid { set; get; }///<summary>/// 服务器充值接口url///</summary> [XmlAttribute("server_pay_url")]public string server_pay_url { set; get; }///<summary>/// 服务器登陆接口///</summary> [XmlAttribute("server_login_url")]public string server_login_url { set; get; }///<summary>/// 服务器ID号,用来唯一标识///</summary> [XmlAttribute("serverid")]public string serverid { set; get; }///<summary>/// 第几区///</summary> [XmlAttribute("area")]public string area { set; get; }///<summary>/// 第几服///</summary> [XmlAttribute("fu")]public string fu { set; get; }///<summary>/// 显示名称///</summary> [XmlAttribute("showname")]public string showname { set; get; }///<summary>/// 详细介绍///</summary> [XmlAttribute("detail")]public string detail { set; get; } ///<summary>/// 君主排行///</summary> [XmlAttribute("xml1")]public string xml1 { set; get; } ///<summary>/// 联盟排行///</summary> [XmlAttribute("xml2")]public string xml2 { set; get; } }}//*************序列化帮助类*************using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Xml.Serialization;using System.IO;using System.Runtime.Serialization;using System.Text;using System.Xml; ///<summary>///序列化与反序列化对象///</summary>public class Serializator{ public static string SerializeLinqList<T>(List<T> list) { DataContractSerializer dcs = new DataContractSerializer(typeof(List<T>)); StringBuilder sb = new StringBuilder(); using (XmlWriter writer = XmlWriter.Create(sb)) { dcs.WriteObject(writer, list); } return sb.ToString(); } public static List<T> DeserializeLinqList<T>(string xml) { List<T> list; DataContractSerializer dcs = new DataContractSerializer(typeof(List<T>));using (XmlReader reader = XmlReader.Create(new StringReader(xml))) { list = dcs.ReadObject(reader) as List<T>; } if (list == null) list = new List<T>(); return list; } }
DataContractSerializer进行JSON格式化
[DataContract]public class DataTreeNode<T> where T: new() { [DataMember]public T Data { get; set; } [DataMember]public List<DataTreeNode<T>> Children { get; set; }public DataTreeNode() { Data = new T(); Children = new List<DataTreeNode<T>>(); }public DataTreeNode(T data) { Data = data; Children = new List<DataTreeNode<T>>(); } public DataTreeNode<T> Parent { get; set; }///<summary>/// 子类中标记为Enabled的节点数///</summary> public int EnabledChildCount { get; set; } }public static class Extensions {///<summary>/// 序列化UTF-8///</summary>///<param name="item"></param>///<returns></returns> public static string ToJson(this object item) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(item.GetType());using (MemoryStream ms = new MemoryStream()) { serializer.WriteObject(ms, item); StringBuilder sb = new StringBuilder(); sb.Append(Encoding.UTF8.GetString(ms.ToArray()));return sb.ToString(); } } }
javaScriptSerializer进行Json格式化(导入命名空间:System.Web.Script.Serialization;)
JavaScriptSerializer serializer = new JavaScriptSerializer(); AreaClassManager manager = OB.R<AreaClassManager>();var area = manager.Query("ClassId,ClassName,Code"); List<AreaClass> model = new List<AreaClass>(); area.ForEach(ent => {string code = ent.Code.Length != 4 ? (ent.Code.Substring(0, ent.Code.Length - 4)) : "0001";int level = ent.Code.Length / 4; model.Add(new AreaClass { I = ent.ClassID, C = ent.ClassName, P = manager.GetModelList("Code='" + code + "'")[0].ClassID, L=level }); }); return Content("var G_AreaList=" + serializer.Serialize(model));
转载于:https://www.cnblogs.com/wdfrog/archive/2011/11/08/2240657.html
几个用于序列化的代码片段相关推荐
- 那些html编辑器有代码片段6,VS Code 折腾记 - (6) 基本配置/快捷键定义/代码片段的录入(snippet)...
前言 本来分成三篇来写的,但是想了想没必要,大家都是聪明人...简单的东西点一下就晓得了. 基本配置 快捷键自定义(Ctrl+K Ctrl + S) 那个when支持条件表达式返回一个布尔值 支持的快 ...
- 分享.NET开发中经常使用到的代码片段 完全从实际项目中提取出来,也可被反反复复的重复借用...
几年前,一篇<ASP.NET开发人员经常使用的三十三种代码>非常流行,它总结了一些经常在ASP.NET开发中使用到的代码,直接可以拿来使用.今天重读这篇文章,有感而发,善于总结也是进步,于 ...
- php编程神器,PHP代码神器 十个PHP代码片段超极好用
PHP开发中敲代码是最能磨练人意志的,面对枯燥的代码有些人感兴趣,然而有些人不耐烦,面对如此多的代码总想着可以复制粘贴,以提高效率.PHP代码有这种功能,今天小编给大家推荐一些PHP代码神器,十个超极 ...
- 初学者怎样看懂python代码_新手入门必看,最常用的Python代码片段
对于编程开发人员来讲,Python语法一开始可能看起来很奇怪.如果我们看到Python使用其他编程语言(例如Java)完成常见的工作,那会不会很意思?我们常见的代码片段称为"代码惯用法&qu ...
- php常用的十个代码片段,转载
为什么80%的码农都做不了架构师?>>> PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言.PHP拥有数以百计的基本功能,支持 ...
- 30秒内便能学会的30个超实用Python代码片段
许多人在数据科学.机器学习.web开发.脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言. Python流行的部分原因在于简单易学. 本文将简要介绍30个简短的.且能在30秒内掌握 ...
- 对文本根据特殊字符进行分段代码_如何优雅地配置快应用的代码片段
本文使用 Zhihu On VSCode 创作并发布 作为一名程序员,在编码的过程中,难免会遇到要写些重复性的代码:假如每次都重新码一遍,既浪费了时间,也有伤身体.倘若可以配置一个像快捷键一样,输入简 ...
- C#-代码片段的使用(1) 039
代码片段是现成的代码段,可快速插入到代码中.例如,for代码片段可创建一个空for循环. 代码片段 用法:在编辑区域的Main方法中,输入f/fo/for都可以不过输入前两个可能需要在显示的下拉框中寻 ...
- Visual Studio 的代码片段(Code Snippet)功能
1.概述 在 Visual Studio 中,有一个快捷编辑代码的功能,比如当我们在 VS 编辑器(C#)中写出 关键字 foreach 后,敲击一下 Tab 键,VS 就帮我们自动补全:(插入代码段 ...
最新文章
- python jieba 文本相似度_文本相似度分析(基于jieba和gensim)
- 第一个 python for maya
- 除了清空购物车,阿里年会的技术也够霸气!
- #17# SCCM管理 - 软件中心 VS 应用程序目录网站点
- 网络协议:TCP/IP、SOCKET、HTTP
- Unity3D入门其实很简单
- flask 配置静态文件模板文件
- 大连理工大学计算机视觉实验室,首个镜子分割网络问世,大连理工、鹏城实验室、香港城大出品 | ICCV 2019...
- mac 二进制安装mysql_教程方法;在mac下安装mysql二进制分发版的方法(不是dmg的)电脑技巧-琪琪词资源网...
- “科创赋能 资本助力”2019SIPEF论坛启幕
- C# 通过Http获取网页内容
- 如何把晨光计算机调成音乐模式,伴着晨光走向你——广播《晨光音乐行》栏目运作心得...
- Shell之判断周几
- 基于processing的《代码本色》应用拓展——表现随机行为及牛顿运动学
- 有一种女人,她们并不漂亮,但看上去却很舒服!
- 分割评价指标MIOU
- 深度linux 修复命令,修复启动
- 你好啊 未来的自己
- 大数据精准投放平台_大数据精准营销+全媒体精准投放+信息流广告=真实有效得客户...
- MobTech受邀参与华为开发者联盟沙龙,谈数据智能撬动增长