亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

DotNet的JSON序列化與反序列化

發布時間:2020-07-15 12:43:02 來源:網絡 閱讀:359 作者:彭澤0902 欄目:編程語言

  JSON(JavaScript Object Notation)JavaScript對象表示法,它是一種基于文本,獨立于語言的輕量級數據交換格式。在現在的通信中,較多的采用JSON數據格式,JSON有兩種表示結構,對象和數組,JSON 數據的書寫格式是:名稱/值對。

   在vs解決方案中以前采用xml樹的形式,組織項目的結構。在新的.net core中,項目的解決方案采用json作為項目的結構說明。

   在.net的前后臺數據交互中,采用序列化對象為json,前端ajax接受傳輸數據,反序列化為對象,在頁面對數據進行渲染。有關json的相關內容就不再贅述,在.net中序列化的類主要采用DataContractJsonSerializer類。

   現在提供一個較為通用的json的序列化和反序列化的通用方法。

  1.json的序列化:

        /// <summary>
        /// 將對象序列化為JSON
        /// </summary>
        /// <typeparam name="T">序列化的類型</typeparam>
        /// <param name="t">需要序列化的對象</param>
        /// <returns>序列化后的JSON</returns>
        public static string JsonSerializer<T>(T t)
        {
            if (t == null)
                throw new ArgumentNullException("t");
            string jsonString;
            try
            {
                var ser = new DataContractJsonSerializer(typeof(T));
                var ms = new MemoryStream();
                ser.WriteObject(ms, t);
                jsonString = Encoding.UTF8.GetString(ms.ToArray());
                ms.Close();
                //替換Json的Date字符串
                const string p = @"\\/Date\((\d+)\+\d+\)\\/";
                var matchEvaluator = new MatchEvaluator(ConvertJsonDateToDateString);
                var reg = new System.Text.RegularExpressions.Regex(p);
                jsonString = reg.Replace(jsonString, matchEvaluator);
            }
            catch (Exception er)
            {
                throw new Exception(er.Message);
            }

            return jsonString;
        }

 2.json的反序列化:

        /// <summary>
        /// 將JSON反序列化為對象
        /// </summary>
        public static T JsonDeserialize<T>(string jsonString)
        {
            if (string.IsNullOrEmpty(jsonString))
                throw new Exception(jsonString);
            //將"yyyy-MM-dd HH:mm:ss"格式的字符串轉為"\/Date(1294499956278+0800)\/"格式
            const string p = @"\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}";
            try
            {
                var matchEvaluator = new MatchEvaluator(ConvertDateStringToJsonDate);
                var reg = new System.Text.RegularExpressions.Regex(p);
                jsonString = reg.Replace(jsonString, matchEvaluator);
                var ser = new DataContractJsonSerializer(typeof(T));
                var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
                var obj = (T)ser.ReadObject(ms);
                return obj;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }

        }

  以上是一個較為簡單的json序列化和反序列化方法。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巧家县| 涟源市| 外汇| 清河县| 伊吾县| 通城县| 普兰店市| 靖远县| 青海省| 芦溪县| 定兴县| 磐安县| 永州市| 康马县| 青浦区| 湘乡市| 桃江县| 鹤庆县| 洛南县| 荃湾区| 正安县| 冕宁县| 连州市| 贵南县| 咸阳市| 讷河市| 芒康县| 深圳市| 墨竹工卡县| 东方市| 宜阳县| 泽州县| 邳州市| 民勤县| 武强县| 富川| 日土县| 新干县| 翼城县| 宣化县| 田林县|