//方法一:JavaScriptSerializer类序列化1.添加引用:System.Web.Extensions2.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.Serialization2.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());
}
//方法三:使用Newtonjson1.添加 引用-->右击-->管理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数组结构
C# Json序列化 两种结构,三种方法
最新推荐文章于 2025-06-25 10:48:26 发布