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序列化以及反序列化的更多相关文章

  1. windows phone8.1:Xml,Json序列化和反序列化

    原文:windows phone8.1:Xml,Json序列化和反序列化 小梦本例主要实现以下四点内容: 将Car对象序列化为xml 将Car对象序列化为Json 将xml反序列化为Car对象 将js ...

  2. DotNet的JSON序列化与反序列化

    JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有 ...

  3. C#中JSON序列化和反序列化

    有一段时间没有到博客园写技术博客了,不过每天逛逛博客园中大牛的博客还是有的,学无止境…… 最近在写些调用他人接口的程序,用到了大量的JSON.XML序列化和反序列化,今天就来总结下json的序列化和反 ...

  4. WPF中的常用布局 栈的实现 一个关于素数的神奇性质 C# defualt关键字默认值用法 接口通俗理解 C# Json序列化和反序列化 ASP.NET CORE系列【五】webapi整理以及RESTful风格化

    WPF中的常用布局   一 写在开头1.1 写在开头微软是一家伟大的公司.评价一门技术的好坏得看具体的需求,没有哪门技术是面面俱到地好,应该抛弃对微软和微软的技术的偏见. 1.2 本文内容本文主要内容 ...

  5. Newtonsoft.Json 序列化和反序列化 时间格式

    From : http://www.cnblogs.com/litian/p/3870975.html 1.JSON序列化 string JsonStr= JsonConvert.SerializeO ...

  6. Net中JSON序列化和反序列化处理(日期时间特殊处理)

    0  缘由 笔者最近在web api端使用Json.Net进行序列化处理,而在调用端使用DataContractSerializer进行反序列化,遇到日期时间处理反序列化不成功[备注:笔者使用Net ...

  7. wp8.1 Study11:APP里文件读写和使用XML和Json序列化

    一.文件读写 1.基本操作(使用FileIO API) 这个方法在上一个stduy已经学过,那么贴出来复习下,代码如下: private async void writeTextToLocalStor ...

  8. Newtonsoft.Json 序列化和反序列化 时间格式 [转]

    1.JSON序列化 string JsonStr= JsonConvert.SerializeObject(Entity); eg:   A a=new A(); a.Name="Elain ...

  9. C# JSON 序列化和反序列化——JavaScriptSerializer实现

    一. JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.您无法访问序列化程序的此实例.但是,此类公开了公共 API.因此, ...

随机推荐

  1. React 高阶组件浅析

    高阶组件的这种写法的诞生来自于社区的实践,目的是解决一些交叉问题(Cross-Cutting Concerns).而最早时候 React 官方给出的解决方案是使用 mixin .而 React 也在官 ...

  2. python __new__

    1.__new__的作用是什么? 依照Python官方文档的说法,__new__方法主要是当你继承一些不可变的class时(比如int, str, tuple), 提供给你一个自定义这些类的实例化过程 ...

  3. 怎么用群晖webdav实现外网映射网络驱动器

    前几天刚作好群晖nas局域网内的磁盘映射功能,今天老板又想实现在家里也能跟在公司一样的方便访问映射功能,因为使用网页操作实在太麻烦了.这可怎么办官方提供的 Assistant工具只能操作局域网的,又没 ...

  4. LODOP打印超文本字符串拼接1 固定表格填充数值

    前面的博文:Lodop打印控件传入css样式.看是否传入正确样式.Lodop打印如何隐藏table某一列,Lodop传入的样式可以不是页面本身的css样式,传入什么打印什么,此外,数据也是,超文本打印 ...

  5. blender-编译源码

    1. 获得源码,目前是以 2.8 版本为例子 https://www.blender.org/download/  上,可以直接下面源码 2.  解压,在blender-2.80 目录下,运行 mak ...

  6. windows下进程与线程

    windows下进程与线程 Windows是一个单用户多任务的操作系统,同一时间可有多个进程在执行.进程是应用程序的运行实例,可以理解为应用程序的一次动态执行:而线程是CPU调度的单位,是进程的一个执 ...

  7. async/await小知识点

    一.使用async修饰的函数,返回的内容就是一个Promise,因此可以使用Promise对象所有的方法,如then等 二.在async函数中使用await是否会影响其他代码的执行,答案是:不会.

  8. Spring 多对对实体

    package com.wangshenghua.entity; import java.io.Serializable; import java.util.Set; import javax.per ...

  9. oracle 查看表空间以及日志文件等系统文件

    --1.查看表空间的名称及大小 )), ) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.t ...

  10. Netty学习笔记(一)——nio基础

    Netty简单认识: 1) Netty 是由JBOSS 提供的一个Java 开源框架. 2) Netty 是一个异步的.基于事件驱动的网络应用框架,用以快速开发高性能.高可靠性的网络I0 程序. 3) ...