真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

DotNet的JSON序列化與反序列化-創(chuàng)新互聯(lián)

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

成都創(chuàng)新互聯(lián)公司成都網(wǎng)站建設(shè)定制制作,是成都網(wǎng)站維護公司,為成都PE包裝袋提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站制作熱線:18982081108

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

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

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

1.json的序列化:

        /// 
        /// 將對象序列化為JSON
        /// 
        /// 序列化的類型
        /// 需要序列化的對象
        /// 序列化后的JSON
        public static string JsonSerializer(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的反序列化:

        /// 
        /// 將JSON反序列化為對象
        /// 
        public static T JsonDeserialize(string jsonString)
        {
            if (string.IsNullOrEmpty(jsonString))
                throw new Exception(jsonString);
            //將"yyyy-MM-dd HH:mm:ss"格式的字符串轉(zhuǎn)為"\/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序列化和反序列化方法。

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。


當(dāng)前標(biāo)題:DotNet的JSON序列化與反序列化-創(chuàng)新互聯(lián)
文章分享:http://weahome.cn/article/dgihph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部