zoukankan      html  css  js  c++  java
  • Json序列化与反序列化完整实例

    前台代码:
    <%@ 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  :<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 = 1, 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;
            }
    
        }
    }


    
       
    
  • 相关阅读:
    BestCoder6 1002 Goffi and Squary Partition(hdu 4982) 解题报告
    codeforces 31C Schedule 解题报告
    codeforces 462C Appleman and Toastman 解题报告
    codeforces 460C. Present 解题报告
    BestCoder3 1002 BestCoder Sequence(hdu 4908) 解题报告
    BestCoder3 1001 Task schedule(hdu 4907) 解题报告
    poj 1195 Mobile phones 解题报告
    二维树状数组 探索进行中
    codeforces 460B Little Dima and Equation 解题报告
    通过Sql语句控制SQLite数据库增删改查
  • 原文地址:https://www.cnblogs.com/honghong75042/p/5773935.html
Copyright © 2011-2022 走看看