前台代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="JSonExercise.WebForm1" validateRequest="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div> 将Customer类转成string&nbsp;&nbsp;:<asp:TextBox ID="rT1" runat="server" TextMode="MultiLine" Width="600px" Height="150"></asp:TextBox>
<br />
读txt文件并转成Customer类:<asp:TextBox ID="txtCustomer" runat="server" TextMode="MultiLine" Width="600" Height="150"></asp:TextBox> <br /> <br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click"
Text="Json类序列化string" /> <br />
<br /> <asp:Button ID="Button2" runat="server" onclick="Button2_Click"
Text="读txt文件发序列化Custom类" /> </div>
</form>
</body>
</html>

后台代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.IO;
using System.Xml.Serialization; namespace JSonExercise
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
public class Customer
{
public int Unid { get; set; }
public string CustomerName { get; set; }
}
// 将实体转成string
public string ToJson(Customer customer)
{ string strReturn = SerializeToXml(customer);
return strReturn; } protected void Button1_Click(object sender, EventArgs e)
{
Customer cc = new Customer { Unid = , CustomerName = "John" };
string strJson = ToJson(cc);
rT1.Text = strJson;
}
#region 实现对象转换成XML类型字符串。
/// <summary>
/// 实现对象转换成XML类型字符串。
/// </summary>
/// <param name="obj">Object对象参数</param>
/// <returns>返回XML类型字符串</returns>
public static string SerializeToXml(object obj)
{
XmlSerializer s = new XmlSerializer(obj.GetType());
StringBuilder sb = new StringBuilder();
StringWriter writer = new StringWriter(sb);
s.Serialize(writer, obj);
return sb.ToString().Replace(@"\>\s+", ">");
}
#endregion #region 实现Xml字符串转换为实体对象。
/// <summary>
/// 实现Xml字符串转换为实体对象。
/// </summary>
/// <typeparam name="T">实体对象的类型</typeparam>
/// <param name="xmlObject">xml字符串</param>
/// <returns>返回对应的实体对象</returns>
public static T DeserializeXmlString<T>(string xmlObject)
{
XmlSerializer s = new XmlSerializer(typeof(T));
StringReader stringReader = new StringReader(xmlObject);
return (T)s.Deserialize(stringReader);
}
#endregion protected void Button2_Click(object sender, EventArgs e)
{
FileStream fs1 = new FileStream("customer.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs1);
string str1 = sr.ReadToEnd();
sr.Close();
fs1.Close();
Customer customer = DeserializeXmlString<Customer>(str1);
txtCustomer.Text = customer.Unid + " " + customer.CustomerName;
} }
}

Json序列化与反序列化完整实例的更多相关文章

  1. JSON序列化和反序列化的实例

    之前有项目中使用到了Json的序列化和反序列化,现在将使用的实例记录下来以备查阅.如有不妥,请指教. 代码的最终目的是得到一个符合 resultClass<List<rtnGetFindM ...

  2. Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解

    Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全   Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...

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

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

  4. 序列化对象C++对象的JSON序列化与反序列化探索

    新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 一:背景 作为一名C++开发人员,我始终很期待能够像C#与JAVA那样,可以省力的进行对象的序列化与反序列化,但到现在为止,还没有找 ...

  5. C++对象的JSON序列化与反序列化探索完结-列表的序列化与反序列化

    在前两篇文章中,我们已经完成对普通对象以及复杂对象嵌套的序列化与反序列化,见如下地址: C++对象的JSON序列化与反序列化探索 C++对象的JSON序列化与反序列化探索续-复杂对象的序列化与反序列化 ...

  6. C++对象的JSON序列化与反序列化探索

    一:背景 作为一名C++开发人员,我一直很期待能够像C#与JAVA那样,可以轻松的进行对象的序列化与反序列化,但到目前为止,尚未找到相对完美的解决方案. 本文旨在抛砖引玉,期待有更好的解决方案:同时向 ...

  7. 转:Json序列化和反序列化

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介 ...

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

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

  9. 在net中json序列化与反序列化 面向对象六大原则 (第一篇) 一步一步带你了解linq to Object 10分钟浅谈泛型协变与逆变

    在net中json序列化与反序列化   准备好饮料,我们一起来玩玩JSON,什么是Json:一种数据表示形式,JSON:JavaScript Object Notation对象表示法 Json语法规则 ...

随机推荐

  1. sql delete output

    select * into #student1 from student select * from #student1 create table #temp2( id int not null,na ...

  2. pod应用--备用

    一.概要 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库. 二.安装 由于 ...

  3. Bash 使用技巧大补贴

    https://linuxtoy.org/archives/the-best-tips-and-tricks-for-bash.html

  4. cf Ping-Pong (Easy Version)

    http://codeforces.com/contest/320/problem/B 这道题看了很长时间没看懂, 就是个dfs: #include <cstdio> #include & ...

  5. iptables 顺序

    -A INPUT -s 115.236.6.6/32 -p udp -m udp --dport 111 -j ACCEPT -A INPUT -s 10.175.197.98/32 -p udp - ...

  6. SQL Server 通过一个表和另一个表联合 批量更新这个表的字段

    UPDATE OutPzPersonSet SET cPerson = a.AAA --SELECT * FROM OutPzPersonSet d INNER JOIN AAAA a ON d.cz ...

  7. ZOJ3519-Beautiful People:最长上升子序列的变形

    Beautiful People Special JudgeTime Limit: 10000/5000MS (Java/Others)Memory Limit: 128000/64000KB (Ja ...

  8. [置顶] Oracle 11g R2 ASM:了解 Oracle ASM 基本概念

    About Oracle ASM Instances About Oracle ASM Disk Groups About Mirroring and Failure Groups About Ora ...

  9. swift 弹窗

    直接拷贝使用即可 let alert = UIAlertController(title:nil,message:"输入不能为空",preferredStyle: .Alert) ...

  10. python ctypes小例子

    import time import ctypes import ctypes.wintypes SEE_MASK_NOCLOSEPROCESS = 0x00000040 SEE_MASK_INVOK ...