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數組結構
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.