在framework4.0 3.5中反序列化 解析JSON


這里會用到一個命名空間

System.Runtime.Serialization.Json,杯具的孩子會發現,在添加引用里根本找不到此命名空間,找到的是System.Runtime.Serialization,添加引用后,根本不管用,此命名空間里根本不包括序列化要用到的對象DataContractJsonSerializer,那,這個對象到底在哪里呢。。。。

經過不斷的查終於找到了,這個坑爹的貨藏的很深呀。正確的是直接添加這個引用 System.Servicemodel.Web就把問題解決了。

順便奉上序列化和反序列化JSON的一個類:

using System.IO;
using System.Text;
using System.Runtime.Serialization.Json;
namespace Test
{
    /// <summary>
    /// JSON幫助類
    /// </summary>
    public class JSONHelper
    {
        //序列化
        //對象轉化為Json字符串
        public static string Serialize(object objectToSerialize)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(objectToSerialize.GetType());
                serializer.WriteObject(ms, objectToSerialize);
                ms.Position = 0;

                using (StreamReader reader = new StreamReader(ms))
                {
                    return reader.ReadToEnd();
                }
            }
        }

        //反序列化
        //Json字符串轉化為對象
        public static T Deserialize<T>(string jsonString)
        {
            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
            {
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
                return (T)serializer.ReadObject(ms);
            }
        }
    }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM