詳細(xì)說(shuō)明學(xué)習(xí)JSON的相關(guān)技巧與對(duì)策
經(jīng)過(guò)長(zhǎng)時(shí)間學(xué)習(xí)JSON,于是和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。學(xué)習(xí)JSON時(shí),你可能會(huì)遇到JSON問(wèn)題,這里將介紹JSON問(wèn)題的解決方法,在這里拿出來(lái)和大家分享一下。
但是在編輯的時(shí)候,雖然是成功了,但是發(fā)現(xiàn)有2個(gè)警告,由于本人寫(xiě)程序一直都是盡自己***努力來(lái)保證所寫(xiě)程序的警告數(shù)量最少,所以,當(dāng)然要看看這兩個(gè)警告到底是什么東東。警 告 是:“System.Web.Script.Serialization.JavaScriptSerializer.JavaScriptSerializer()” 已過(guò)時(shí):“The recommended alternative is System.Runtime.Serialization.DataContractJsonSerializer.”#t#
記得剛開(kāi)始學(xué)習(xí)ASP.NET的時(shí)候,在用AppSettings的時(shí)候(具體哪個(gè)方法記不清了)也出現(xiàn)過(guò)類似的警告,***是用ConfigurationManager代替就沒(méi)有出現(xiàn)過(guò)該警告了,那這次應(yīng)該也差不多吧。于是到MSDN看看是怎么回事。沒(méi)弄明白,再到CSDN看看呢。還是沒(méi)弄明白,***,求助一下Google。NND,折騰了半天,還是不知道到底是什么回事。
用學(xué)習(xí)JSON來(lái)代替吧,但是又少了對(duì)“System.Runtime.Serialization”的引用,把引用添加上吧,還是沒(méi)有編譯通過(guò)。一直不知道是怎么回事,***,幸運(yùn)的Google到一個(gè)Demo,也是用“DataContractJsonSerializer”來(lái)代替上訴過(guò)時(shí)警告的。SCOTT大作中末尾Note給出的鏈接??偹闶敲靼自趺椿厥铝?。解決步驟如下:
首先,添加兩個(gè)DLL的引用,分別是:System.Runtime.Serialization.dll、System.ServiceModel.Web.dll。添加完引用之后,在cs代碼頁(yè)中添加using語(yǔ)句,如下:
- using System;
- using System.Web.Script.Serialization;
- namespace Demo
- {
- /// <summary>
- /// JSON幫助類
- /// </summary>
- public static class JsonHelper
- {
- /// <summary>
- /// 格式化成Json字符串
- /// </summary>
- /// <param name="obj">需要格式化的對(duì)象</param>
- /// <returns>Json字符串</returns>
- public static string ToJson(object obj)
- {
- JavaScriptSerializer serializer = new JavaScriptSerializer();
- return serializer.Serialize(obj);
- }
- /// <summary>
- /// 格式化成Json字符串
- /// </summary>
- /// <param name="obj">需要格式化的對(duì)象</param>
- /// <param name="recursionDepth">指定序列化的深度</param>
- /// <returns>Json字符串</returns>
- public static string ToJson(object obj, int recursionDepth)
- {
- JavaScriptSerializer serializer = new JavaScriptSerializer();
- serializer.RecursionLimit = recursionDepth;
- return serializer.Serialize(obj);
- }
- }