XML和JSON序列化以及反序列化
1.将文件保存序列化至文档中,然后再读取:
//首先创建可序列化的实体类
[Serializable] public class Message
{
public string Name { get; set; }
public int Age { get; set; }
public DateTime Time { get; set; }
public char Gender { get; set; }
}
下面是序列化保存文件,以及反序列化读取文件
插入命名空间:using system.IO;
using system.Runtime.Serialization.Formatters.Binary;
private void btn_Click(object sender,EventArgs e){ Message ms=new Message() {
Name=this.txt_name.Text.trim().tostring(), Age=Convert.Toint32(this.txt_age.Text.trim()), Time=Convert.ToDateTime(this.txt_time.text.trim()), Gender=Convert.Tochar(this.txt_gender.text.trim())
}; this.writerFile(ms);
}
private void writeFile(object Message){
//创建序列化文件
FileStream fs=new FileStream("MessageFileName",FileMode.Create)
//创建二进制格式化器
BinaryFormatter bf=new BinaryFormatter();
//将对象序列化
bf.Serialize(fs,Message);
fs.close();
}
//反序列化 将文本信息反序列化读取出来 private void btn_read_Click( Object sender,EventArgs e){
ReadFile();
}
private void ReadFile(){
//打开序列化文件
FileStream fs=new FileStream("MessageName",FileMode.Open)
BinaryFormatter bf=new BinaryFormatter();
//将文件反序列化
Message ms=(Message)bf.Deserialize(fs);
//进行赋值
txt_name.text=ms.Name.tostring();
fs.Close();
}
2.对xml文件序列化和反序列化
公有属性:
public class RSPItemPicSet
{
// 操作返回xml示例,按这个xml格式定义可序列化的实体类
public static string str = @"<RSPItemPicSet>
<functionID>setItemsPics</functionID>
<time>2017-09-07 15:51:04</time>
<ItemsIDList>
<itemIDInfo>
<itemID>43545346</itemID>
<operCode>1</operCode>
<operation>操作失败</operation>
</itemIDInfo>
<itemIDInfo>
<itemID>1125507057</itemID>
<operCode>0</operCode>
<operation>操作成功</operation>
</itemIDInfo>
</ItemsIDList>
</RSPItemPicSet>"; public string functionID { get; set; }
public string time { get; set; }
public List<itemIDInfo> ItemsIDList { get; set; }
public class itemIDInfo
{
public string itemID { get; set; }
public string operCode { get; set; }
public string operation { get; set; }
}
} //插入命名空间
using system.io;
using system.XML.Serialization //对XML文件进行反序列化
private void btn_read_click(object Sender,EventArgs e)
{
//创建序列化对象
XmkSerializer se=new XmlSerializer(typeof("类名"))
//将xml格式字符串转为UTF8的格式编码
byte[] arry=Encoding.UTF8.GetBytes("XML格式字符串");
//指定流的对象
stream me=new MemoryStream(arry);
//将xml字符串反序列化
RSPItemPicSet rsp=(RSPItemPicSet)se.DeSerialize(me);
//给文本框赋值
TextBox1.text=resp.ItemsIDlist[].itemID;
}
//对XML文件序列化
private void btn_Write_click(Object Sender,EventArgs e)
{
//将XML节点类实例化
RSPItemPicSet Rsp=new RspitemPicSet();
rep.functionID="一个值";
List<RSPItemPicSet.ItemIDInfo> itemidinfos=new List<RSPItemPicSet.ItemIdInfo>();
RSPItemPicSet.itemIDInfo idi=new RSPItemPicSet();
idi.operation="一个值";
idi.operCode="一个值";
idi.itemID="一个值";
itemidinfos.add(idi);
rsp.ItemsIDlist=itemidinfos;
//创建流
MemoryStream strem=new MemoryStream();
//创建序列化对象
XMLSerializer se=new XMLSerializer(typeof(RSPItemPicSet));
//使用流将文件格式化为xml文件,记录到流中
se.Serialize(stream,Rsp);
stream.Position=;
//从字节流中读取文件
StreamReader sr=new StreamReader(stream);
string str=sr.ReadToEnd();
sr.Dispose();
stream.Dispose();
3.对JSON进行序列化和反序列化
//实例化对象并赋值
Message mes=new Message(){Name="张三",age=,time=convert.toin32("2019-05-16"),gender=convert.tochar("男")};
//JSON序列化 string strDate=JsonConvert.SerializeObject(mes); //JSON反序列化
public string Student()
{
public string ID{get;set;}
public string Name{get;set;}
}
string str = "{\"ID\":2,\"Name\":\"鲁智深\",\"Age\":230,\"Sex\":\"男\"}";
Student str=JsonConvert.DeserializeObject<Student>(str);
结果:str.id=;
XML和JSON序列化以及反序列化的更多相关文章
- windows phone8.1:Xml,Json序列化和反序列化
原文:windows phone8.1:Xml,Json序列化和反序列化 小梦本例主要实现以下四点内容: 将Car对象序列化为xml 将Car对象序列化为Json 将xml反序列化为Car对象 将js ...
- DotNet的JSON序列化与反序列化
JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有 ...
- C#中JSON序列化和反序列化
有一段时间没有到博客园写技术博客了,不过每天逛逛博客园中大牛的博客还是有的,学无止境…… 最近在写些调用他人接口的程序,用到了大量的JSON.XML序列化和反序列化,今天就来总结下json的序列化和反 ...
- WPF中的常用布局 栈的实现 一个关于素数的神奇性质 C# defualt关键字默认值用法 接口通俗理解 C# Json序列化和反序列化 ASP.NET CORE系列【五】webapi整理以及RESTful风格化
WPF中的常用布局 一 写在开头1.1 写在开头微软是一家伟大的公司.评价一门技术的好坏得看具体的需求,没有哪门技术是面面俱到地好,应该抛弃对微软和微软的技术的偏见. 1.2 本文内容本文主要内容 ...
- Newtonsoft.Json 序列化和反序列化 时间格式
From : http://www.cnblogs.com/litian/p/3870975.html 1.JSON序列化 string JsonStr= JsonConvert.SerializeO ...
- Net中JSON序列化和反序列化处理(日期时间特殊处理)
0 缘由 笔者最近在web api端使用Json.Net进行序列化处理,而在调用端使用DataContractSerializer进行反序列化,遇到日期时间处理反序列化不成功[备注:笔者使用Net ...
- wp8.1 Study11:APP里文件读写和使用XML和Json序列化
一.文件读写 1.基本操作(使用FileIO API) 这个方法在上一个stduy已经学过,那么贴出来复习下,代码如下: private async void writeTextToLocalStor ...
- Newtonsoft.Json 序列化和反序列化 时间格式 [转]
1.JSON序列化 string JsonStr= JsonConvert.SerializeObject(Entity); eg: A a=new A(); a.Name="Elain ...
- C# JSON 序列化和反序列化——JavaScriptSerializer实现
一. JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.您无法访问序列化程序的此实例.但是,此类公开了公共 API.因此, ...
随机推荐
- [原][OSG][osgEarth]osgEarth例子程序简介
1.osgearth_graticule:生成经纬线. 2.osgearth_annotation:各类标注(点.线.面.模型.文本等). 3.osgearth_city:加载一个城市三维模型,可以浏 ...
- Ubuntu16.04 + cuda9.0 +cudnn7.1(转载)
转载一个详细可用的ubuntu16.04+cuda9.0+cudnn7.1教程. 0 - 参考材料 https://blog.csdn.net/Umi_you/article/details/8026 ...
- Cisco Port-Channel 设置(链路聚合--重点)
Port-Channel 的在实际工作中的主要作用是将两个或多个端口捆绑成为一个虚拟通道. interface Port-channel1 description port(1/0/5-6) swit ...
- 阶段5 3.微服务项目【学成在线】_day18 用户授权_09-动态查询用户的权限-认证服务查询用户权限
认证服务查询用户权限 如果权限为空就New一个对象出来. 因为如果为空的话 下面 forEach就会报空指针的异常 启动服务测试 重新登陆 看到userExt已经获取到了用户的权限 权限的字符串 复制 ...
- 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_05-SpringSecurityOauth2研究-搭建认证服务器
3 Spring Security Oauth2研究 3.1 目标 本项目认证服务基于Spring Security Oauth2进行构建,并在其基础上作了一些扩展,采用JWT令牌机制,并自定 义了用 ...
- Qt编写控件属性设计器7-串口采集
一.前言 数据源是组态软件的核心灵魂,少了数据源,组态就是个花架子没卵用,一般数据源有三种方式获取,串口.网络.数据库,至于数据规则是什么,这个用户自己指定,本设计器全部采用第一个字节作为数据来演示. ...
- SAP R3和SAP Business One的区别
SAP R3是SAP开发的 开发语言是ABAP. 之前叫SAP R/2 然后叫R/3 后又改叫ECC 现在叫A1了. 现在有新的版本S4 HANA : SAP发展史 SAP Business One是 ...
- jenkins:从FTP服务器下载文件
lftp 账号:密码@192.168.207.2 lcd /home/eccore/app/chen get -c /基础运维共享文件/OK-TeamViewer14.2.2558.rar
- webpack官网demo起步中遇到的问题
在webpack官网demo一开始搭建中
- layuiAdmin (单页版)常见问题与解决方案
最近项目开发中用到了layuiAdmin的单页版进行开发,期间遇到一些问题,在此总结一二: 单页版缓存问题 由于单页面版本的视图文件和静态资源模块都是动态加载的,所以可能存在浏览器的本地缓存问题,因此 ...