詳細說明JSON字符串的使用和維護工作
最近研究學(xué)習(xí)JSON字符串,前者用到的數(shù)據(jù)內(nèi)容基本上都是JSON字符串,遂想寫一個格式化數(shù)據(jù)成JSON的東東,在網(wǎng)上找了一下,發(fā)現(xiàn)還蠻多的,實現(xiàn)了一個類似于ToString()的方法:
- 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);
- }
- }
一字不漏的照打,應(yīng)該沒有問題吧(后來發(fā)現(xiàn)SCOTT大作末尾的Note,忘記看了,真是粗心啊~~~ *_*)!但是在編輯的時候,雖然是成功了,但是發(fā)現(xiàn)有2個警告,由于本人寫程序一直都是盡自己***努力來保證所寫程序的警告數(shù)量最少,所以,當(dāng)然要看看這兩個警告到底是什么東東。
警 告 是:“System.Web.Script.Serialization.JavaScriptSerializer.JavaScriptSerializer()” 已過時:“The recommended alternative is System.Runtime.Serialization.DataContractJsonSerializer.”記得剛開始學(xué)習(xí)JSON字符串的時候,在用AppSettings的時候(具體哪個方法記不清了)也出現(xiàn)過類似的警告,***是用ConfigurationManager代替就沒有出現(xiàn)過該警告了,那這次應(yīng)該也差不多吧。#t#
于是到MSDN看看是怎么回事。沒弄明白,再到CSDN看看呢。還是沒弄明白,***,求助一下Google。NND,折騰了半天,還是不知道到底是什么回事。用“DataContractJsonSerializer”來代替吧,但是又少了對“System.Runtime.Serialization”的引用,把引用添加上吧,還是沒有編譯通過。
一直不知道是怎么回事,***,幸運的Google到一個Demo,也是用“DataContractJsonSerializer”來代替上訴過時警告的。SCOTT大作中末尾Note給出的鏈接??偹闶敲靼自趺椿厥铝?。解決步驟如下:
- using System;
- using System.IO;
- using System.Runtime.Serialization.Json;
注:因為要用到Stream等東東,所以這里要添加上JSON字符串這個命名空間。