//方法一: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数组结构