C # json serialization deserialization

Serialization

How to transfer objects in binary system ?? Serialization! Then backhand a deserialization ~

Code directly

1. Popular json because js can be transferred directly

JsonHelper help class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Script.Serialization;
using Newtonsoft.Json;


namespace 序列化
{
    class JsonHelper
    {

        #region  //第三方的比微软更快<!!!双方的版本一定要一致>
        /// <summary>
        /// Newtonsoft.Json;库的 JsonConvert.SerializeObject 
        /// 将对象序列化--》第三方库 !!!!!!!一定要注意《版本》的一致 不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static string ToJson<T>(T obj)   //一定要注意《版本》的一致 不然会出错
        {
            return JsonConvert.SerializeObject(obj);
        }


        /// <summary>
        /// Newtonsoft.Json 反序列话
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="content"></param>
        /// <returns></returns>
        public static T ToObject<T>(string content)
        {
            return JsonConvert.DeserializeObject<T>(content);
        }

        #endregion


        #region   //序列化微软官方
        /// <summary>
        /// 微软官方序列化
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static string ObjectToStirng<T>(T obj)   //一定要注意《版本》的一致 不然会出错
        {
            JavaScriptSerializer jss = new JavaScriptSerializer();
            return jss.Serialize(obj);
        }

        /// <summary>
        /// 微软官方反序列话
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="content"></param>
        /// <returns></returns>
        public static T StringToObject<T>(string content)
        {
            JavaScriptSerializer jss = new JavaScriptSerializer();
            return jss.Deserialize<T>(content);
        }
        #endregion
    }
}

2. Call the test

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 序列化
{
    class Node
    {
        public int num { get; set; }
        public string name { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
             
            //微软方法测试
            List<Node> nodes = new List<Node>()
            {
                new Node(){ num=1,name="zhazha"},
                new Node(){num=2 ,name="zhazha3"}
            };
            var tt=JsonHelper.ObjectToStirng<List<Node>>(nodes);
            Console.WriteLine(tt);
            List<Node> nodes1 = JsonHelper.StringToObject<List<Node>>(tt);

            //第三方更快,测试
            var tt2 = JsonHelper.ToJson<List<Node>>(nodes);
            Console.WriteLine(tt2);
            List<Node> nodes2 = JsonHelper.ToObject<List<Node>>(tt2);
        }
    }
}

Insert picture description here
Other serialization codes
! [Insert picture description here] (https://img-blog.csdnimg.cn/20200330205224508.png
Insert picture description here
Insert picture description here
Insert picture description here

Published 27 original articles · praised 1 · visits 1673

Guess you like

Origin blog.csdn.net/qq_37959151/article/details/105208245