惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Know Your Adversary
Know Your Adversary
C
CERT Recently Published Vulnerability Notes
V
Vulnerabilities – Threatpost
N
News | PayPal Newsroom
O
OpenAI News
A
About on SuperTechFans
月光博客
月光博客
Martin Fowler
Martin Fowler
L
LangChain Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V2EX - 技术
V2EX - 技术
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
人人都是产品经理
人人都是产品经理
T
Tor Project blog
D
DataBreaches.Net
Cloudbric
Cloudbric
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
云风的 BLOG
云风的 BLOG
F
Full Disclosure
S
SegmentFault 最新的问题
Vercel News
Vercel News
T
Tailwind CSS Blog
Schneier on Security
Schneier on Security
宝玉的分享
宝玉的分享
M
MIT News - Artificial intelligence
博客园 - 【当耐特】
P
Privacy International News Feed
美团技术团队
S
Secure Thoughts
P
Privacy & Cybersecurity Law Blog
Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
Scott Helme
Scott Helme
Forbes - Security
Forbes - Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Recent Announcements
Recent Announcements
AWS News Blog
AWS News Blog
Stack Overflow Blog
Stack Overflow Blog
S
Security Affairs
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The GitHub Blog
The GitHub Blog
T
Tenable Blog
Cyberwarzone
Cyberwarzone
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
J
Java Code Geeks
T
Threatpost

博客园 - 大老鼠

JQuery ajax 传递数组 自定义属性 JQuery元素坐标,偏移量 IE8按F12不显示开发人员工具窗口 JQuery AJAX调用WEB SERVICE方法 JQuery Validate验证表单元素 - 大老鼠 - 博客园 sqlserver使用select加锁 jQuery操作解析JSON (sp_dbcmptlevel)将某些数据库行为设置为与指定的 SQL Server 版本兼容。 jQuery使用手册 效果-为操作添加艺术性 DOM操作-基于命令改变页面 事件 选择符-取得你想要的一切 jQuery入门 动态修改样式和层叠样式表 - 大老鼠 - 博客园 DOM2核心和DOM2 HTML 创建可重用的对象 JavaScript中常见陷阱 - 大老鼠 - 博客园
序列化/反序列化JSON
大老鼠 · 2010-07-02 · via 博客园 - 大老鼠
    /// <summary>
    /// 员工信息实体
    /// </summary>
    [DataContract(Namespace = "http://micromouse.cnblogs.com")]
    public class EmployeeEntity
    {
        /// <summary>
        /// 员工ID
        /// </summary>
        [DataMember(Order = 0)]
        public string EmployeeID { get; set; }

        /// <summary>
        /// 员工姓名
        /// </summary>
        [DataMember(Order = 1)]
        public string EmployeeName { get; set; }

        /// <summary>
        /// 出生日期
        /// </summary>
        [DataMember(Order = 2)]
        public DateTime BirthdayDate { get; set; }

        /// <summary>
        /// 地址信息
        /// </summary>
        [DataMember(Order = 3)]
        public AddressinfoEntity AddressInfo { get; set; }
    }

    /// <summary>
    /// 地址信息实体
    /// </summary>
    [DataContract(Namespace = "http://micromouse.cnblogs.com")]
    public class AddressinfoEntity
    {
        /// <summary>
        /// 街道名称 
        /// </summary>
        [DataMember(Order = 0)]
        public string StreetName { get; set; }

        /// <summary>
        /// 门牌号
        /// </summary>
        [DataMember(Order = 1)]
        public string HouseNumber { get; set; }
    }

        /// <summary>
        /// 序列化JSON(将对象序列化为JSON字符串)
        /// </summary>
        protected void btnSerializeJSON_Click(object sender, EventArgs e)
        {
            var employeeEntity = new EmployeeEntity()
            {
                EmployeeID = Guid.NewGuid().ToString(""),
                EmployeeName = "张三",
                BirthdayDate = DateTime.Now,
                AddressInfo = new AddressinfoEntity()
                {
                    StreetName = "一环路北三段55号",
                    HouseNumber = "55"
                }
            };

            var serializer = new DataContractJsonSerializer(typeof(EmployeeEntity));
            using (var stream = new MemoryStream())
            {
                serializer.WriteObject(stream, employeeEntity);
                byte[] dataBytes = new byte[stream.Length];

                stream.Position = 0;
                stream.Read(dataBytes, 0, dataBytes.Length);
                txtJSON.Text = Encoding.UTF8.GetString(dataBytes);
            }
        }

        /// <summary>
        /// 反序列化JSON(将JSON字符串反序列化为对象)
        /// </summary>
        protected void btnDeserializeJSON_Click(object sender, EventArgs e)
        {
            var serializer = new DataContractJsonSerializer(typeof(EmployeeEntity));

            using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(txtJSON.Text)))
            {
                EmployeeEntity employeeEntity = serializer.ReadObject(stream) as EmployeeEntity;

                txtDeJSON.Text = string.Format("employeename=[{0}]\r\n", employeeEntity.EmployeeName);
                txtDeJSON.Text += string.Format("birthdaydate=[{0}]\r\n", employeeEntity.BirthdayDate);
                txtDeJSON.Text += string.Format("streetname=[{0}]", employeeEntity.AddressInfo.StreetName);
            }
        }

序列化后结果如下:

{
    "EmployeeID":"abfc39fe-e988-4d01-b70c-1b07caa1bec0",
    "EmployeeName":"张三",
    "BirthdayDate":"\/Date(1278049399906+0800)\/",
    "AddressInfo":{
        "StreetName":"一环路北三段55号",
        "HouseNumber":"55"
    }
}

反序列化后结果如下:

employeename=[张三]
birthdaydate=[2010/7/2 13:43:19]
streetname=[一环路北三段55号]