VS2013里面居然也没有JSON的支持 还是只有引用Newtonsoft.dll
在这里总结下序列化与反序列化的一些用法
首先是序列化单个对象
dept d = new dept();
d.autoAddUser = "false";
d.createDeptGroup = "false";
d.id = "0001";
d.name = "科技信息部";
Console.WriteLine(JsonConvert.SerializeObject(d).ToString());
结果是:
{"autoAddUser":"false","createDeptGroup":"false","id":"0001","name":"科技信息部"}
一个JSON集合
序列化数组
List<dept> listDept = new List<dept>();
dept d = new dept();
d.autoAddUser = "false";
d.createDeptGroup = "false";
d.id = "0001";
d.name = "科技信息部";
dept d1 = new dept();
d1.autoAddUser = "false";
d1.createDeptGroup = "false";
d1.id = "0002";
d1.name = "科技信息部";
listDept.Add(d);
listDept.Add(d1);
Console.WriteLine(JsonConvert.SerializeObject(listDept));
结果是:
[{"autoAddUser":"false","createDeptGroup":"false","id":"0001","name":"科技信息部"},{"autoAddUser":"false","createDeptGroup":"false","id":"0002","name":"科技信息部"}]
一个JSON集合数组
在序列化过程中JsonConvert.SerializeObject方法对单个集合与数组都是可以用的
下面是反序列化
反序列化在网上看到了很多种方法,有的是引用了Newtonsoft.Json.Linq 然后用JavaScriptArray对象 或者是用JArray对象 尝试了下感觉都不是太方便。所以我在这里还是描述下JsonConvert.DeserializeObject方法
首先是 反序列化单个json集合
string jsonstr = "{\"autoAddUser\":\"false\",\"createDeptGroup\":\"false\",\"id\":\"1111\",\"name\":\"科技信息部\"}";</span><pre name="code" class="csharp"> dept rDept = JsonConvert.DeserializeObject<dept>(jsonstr);
Console.WriteLine(rDept.id);
输出结果是:1111
反序列化list
StringBuilder build = new StringBuilder();
build.Append("[{\"autoAddUser\":\"false\",\"createDeptGroup\":\"false\",\"id\":\"1111\",\"name\":\"科技信息部\"},");
build.Append("{\"autoAddUser\":\"false\",\"createDeptGroup\":\"false\",\"id\":\"2222\",\"name\":\"科技信息部\"},");
build.Append("{\"createDeptGroup\":\"false\",\"id\":\"3333\",\"name\":\"科技信息部\"}]");
listDept = JsonConvert.DeserializeObject<List<dept>>(build.ToString());
Console.WriteLine(listDept.Count);
Console.WriteLine(listDept[0].id);
Console.WriteLine(listDept[1].id);
Console.WriteLine(listDept[2].autoAddUser);
输出结果:
3
1111
2222
最后一个autoAddUser是空也能识别出来 并没有出现其他地方所描述的结果为空报错