C# Json序列化 兩種結構,三種方法

//方法一:JavaScriptSerializer類序列化
1.添加引用:System.Web.Extensions
2.using System.Web.Script.Serialization;
3.
   Dictionary<string, List<string>> dJson = DictionaryJson();             var jss = new JavaScriptSerializer();             string sJson= jss.Serialize(dJson);
//方法二:DataContractJsonSerializer類序列化
1.添加引用:System.Runtime.Serialization
2.using System.IO; using System.Runtime.Serialization.Json;
3.
Dictionary<string, List<string>> dJson = DictionaryJson();        var json = new DataContractJsonSerializer(dJson.GetType());        string szJson = "";        //序列化        using (var stream = new MemoryStream())        {            json.WriteObject(stream,dJson);            sJson= Encoding.UTF8.GetString(stream.ToArray());        }
//方法三:使用Newtonjson
1.添加 引用-->右擊-->管理NuGet程序包(N)...---->
2.using Newtonsoft.Json;
3.
Dictionary<string, List<string>> dJson = DictionaryJson();             string sJson= JsonConvert.SerializeObject(dJson);
/////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
private static Dictionary<string, List<string>> DictionaryJson()
{             Dictionary<string,List<string>> DJson=new Dictionary<string, List<string>>();             List<string> lstring=new List<string>();             lstring.Add("a");             lstring.Add("b");             lstring.Add("c");             DJson.Add("",lstring);             return DJson;
}
第一種方法:{"":["a","b","c"]}
第二種方法:[{"Key":"","Value":["a","b","c"]}]
第三種方法:{"":["a","b","c"]}
可以看到第一種,第三種序列化得到的結果不同於第二種。
是因爲Json有兩種結構:對象,數組
Json對象:Json對象定義在花括號“{}”內,以Key:value鍵值對的形式存放數據,多個數據使用分號“;”分割。
Json數組:Json數組定義在方括號“[]”內,以字符串的形式存放數據,多個數據使用分號“;”分割。
而第二種就是序列化爲Json對象結構
第一種,第三種序列化爲Json數組結構
發佈了45 篇原創文章 · 獲贊 53 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章