zoukankan      html  css  js  c++  java
  • c#操作json的两种方式

    总结一下C#操作json的两种方式,都是将对象和json格式相转。

    1.JavaScriptSerializer,继承自System.Web.Script.Serialization

    private string Serializer<T>(T t)
            {
                JavaScriptSerializer json=new JavaScriptSerializer();
                return json.Serialize(t);
            }
    
    private T DeSerialze<T>(string strJeson) {
                JavaScriptSerializer strJeson1 = new JavaScriptSerializer();
               return strJeson1.Deserialize<T>(strJeson);
            }
    View Code

    2.DataContractJsonSerializer,继承自System.Runtime.Serialization.Json;

    代码如下
    /// <summary>
            /// create json data according to entity
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="t"></param>
            /// <returns></returns>
            public  static  string GetJsonSerializar<T>(T t)
            {
                var ser = new DataContractJsonSerializer(typeof(T));
                using (MemoryStream ms=new MemoryStream())
                {
                    ser.WriteObject(ms,t);
                    return Encoding.UTF8.GetString(ms.ToArray());
                }
            }
            /// <summary>
            /// parse json data accroding to json string data
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="jsonStr"></param>
            /// <returns></returns>
            public static T ParseFromJson<T>(string jsonStr)
            {
                //T obj = Activator.CreateInstance<T>();
                //using (MemoryStream ms=new MemoryStream(Encoding.UTF8.GetBytes(jsonStr)))
                //{
                //    DataContractJsonSerializer jsonSerializer=new DataContractJsonSerializer(obj.GetType());
                //    return (T) jsonSerializer.ReadObject(ms);
                //}
                var ser = new DataContractJsonSerializer(typeof(T));
                var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr));
                var obj = (T)ser.ReadObject(ms);
                return obj; 
            }
    View Code

    但是json在客户端和浏览器传递之间时,如果传递的是实体类的json格式数据,则这类实体类应该用协议去定义,例如:

    [DataContract]
        public class MsgEntity
        {
            [DataMember(Order = 0,IsRequired = true)]
            public string Msg { get; set; }
    
            [DataMember(Order = 1, IsRequired = false)]
            public string HtmlMsg { get; set; }
        }
    View Code
  • 相关阅读:
    两个多项式的卷积【NTT】
    Determinant【矩阵的行列式的求法】
    2020 CCPC 长春题解
    Easy Equation【差分+前缀和】
    CF1433G-Reducing Delivery Cost【最短路】
    Interstellar Hunter【2020CCPC秦皇岛-I】
    P4721 【模板】分治 FFT
    关于Spring事务传播行为的个人见解
    InnoDB MVCC实现原理整理
    Nginx学习笔记(五、Nginx缓存与限流)
  • 原文地址:https://www.cnblogs.com/bradwarden/p/3255693.html
Copyright © 2011-2022 走看看