Newtonsoft.dll JSON序列化与反序列化

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是空也能识别出来 并没有出现其他地方所描述的结果为空报错









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值