zoukankan      html  css  js  c++  java
  • Json序列化与反序列化

    1.泛型方法
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace StreamTest
    {
        public class JsonSerialization
        {
            #region Serialize/Deserialize
            public static string Serialize<T>(T obj)
            {
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
                using (MemoryStream ms = new MemoryStream())
                {
                    serializer.WriteObject(ms, obj);
                    return Encoding.UTF8.GetString(ms.ToArray());
                }
            }
    
            public static T Deserialize<T>(string input)
            {
                if (string.IsNullOrWhiteSpace(input))
                {
                    return default(T);
                }
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
                using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(input)))
                {
                    return (T)serializer.ReadObject(ms);
                }
            }
    
            #endregion
        }
    }

    2.泛型类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.Serialization.Json;
    using System.Runtime.Serialization;
    using System.IO;
    
    namespace ConsoleApplication16
    {
        public class JsonSerialization<T>
        {
            public static string Serialize(T obj)
            {
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
                using (MemoryStream ms = new MemoryStream())
                {
                    serializer.WriteObject(ms, obj);
                    return Encoding.UTF8.GetString(ms.ToArray());
                }
            }
    
            public static T Deserialize(string input)
            {
                if (string.IsNullOrWhiteSpace(input))
                {
                    return default(T);
                }
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
                using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(input)))
                {
                    return (T)serializer.ReadObject(ms);
                }
            }
        }
    }

    两种方法比较,第二种更加规范,建议用第二种写法。

    3.举例说明

    public class Person
        {
            public string Id {get;set;}
    
            public string Name {get;set;}
        }
      static void Main(string[] args)
            {
                Person person = new Person
                {
                    Id = "12345",
                    Name = "xiaoming"
                };
    
                string  str = JsonSerialization<Person>.Serialize(person);
                Console.WriteLine(str);
                Console.ReadKey();
            }

    输出结果:{"Id":"12345","Name":"xiaoming"}

  • 相关阅读:
    C#中一些关联名词的含义归纳
    lua杂记
    项目管理工具与常用网站汇总
    SVN用法及常见问题分析
    递归打印lua中的table
    脚本编辑中的一些名词概念
    quick-cocos2d-x lua框架解析(一)对UI进行操作的UiUtil脚本
    lua的table转为excel表格的方法
    前端mvc与mvvm
    ext--创建store
  • 原文地址:https://www.cnblogs.com/gylhaut/p/5651634.html
Copyright © 2011-2022 走看看