經過長時間學習JSON,於是和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會你更多東西。學習JSON時,你可能會遇到JSON問題,這裡將介紹JSON問題的解決方法,在這裡拿出來和大家分享一下。
但是在編輯的時候,雖然是成功了,但是發現有2個警告,由於本人寫程序一直都是盡自己最大努力來保證所寫程序的警告數量最少,所以,當然要看看這兩個警告到底是什麼東東。警 告 是:“System.Web.Script.Serialization.JavascriptSerializer.JavaScriptSerializer()” 已過時:“The recommended alternative is System.Runtime.Serialization.DataContractJSonSerializer.”
記得剛開始學習ASP.Net的時候,在用APPSettings的時候(具體哪個方法記不清了)也出現過類似的警告,最後是用ConfigurationManager代替就沒有出現過該警告了,那這次應該也差不多吧。於是到MSDN看看是怎麼回事。沒弄明白,再到CSDN看看呢。還是沒弄明白,最後,求助一下Google。NND,折騰了半天,還是不知道到底是什麼回事。
用學習JSON來代替吧,但是又少了對“System.Runtime.Serialization”的引用,把引用添加上吧,還是沒有編譯通過。一直不知道是怎麼回事,最後,幸運的Google到一個Demo,也是用“DataContractJSonSerializer”來代替上訴過時警告的。SCOTT大作中末尾Note給出的鏈接。總算是明白怎麼回事了。解決步驟如下:
首先,添加兩個DLL的引用,分別是:System.Runtime.Serialization.dll、System.ServiceModel.Web.dll。添加完引用之後,在cs代碼頁中添加using語句,如下:
- using System;
- using System.Web.Script.Serialization;
- namespace Demo
- {
- /// <summary>
- /// JSON幫助類
- /// </summary>
- public static class JSonHelper
- {
- /// <summary>
- /// 格式化成JSon字符串
- /// </summary>
- /// <param name="obj">需要格式化的對象</param>
- /// <returns>JSon字符串</returns>
- public static string ToJSon(object obj)
- {
- JavaScriptSerializer serializer = new JavaScriptSerializer();
- return serializer.Serialize(obj);
- }
- /// <summary>
- /// 格式化成JSon字符串
- /// </summary>
- /// <param name="obj">需要格式化的對象</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);
- }
- }