C#中的JSON封装与解析

本文介绍了C#中常见的JSON操作,包括使用DataContractJsonSerializer、JavaScriptSerializer、System.Json和Newtonsoft.Json(JSON.NET)进行JSON序列化和反序列化的示例,以及如何利用LINQ进行数据操作。
摘要由CSDN通过智能技术生成
欲成为海洋大师,必知晓海中每一滴水的真名。
刚开始只是想找一个转换JSON数组的方法,结果在MSDN翻到一大把。

搜索过程中免不了碰到一大堆名词:WCF => DataContract => DataMember => DataContractJsonSerializer,然后就是不停的引入命名空间。

这一段经历,立即让我就联想到了上面引用的这句存在于某小说里面巫师的话语。静态语言真有点令人抓狂,不停的做准备,然后才可能开始工作。

对比
.NET下几种常见的解析JSON方法
主要类 命名空间 限制 内建LINQ支持
DataContractJsonSerializer System.Runtime.Serialization.Json 通用 否
JavaScriptSerializer System.Web.Script.Serialization 只能在Web环境使用 否
JsonArray、JsonObject、JsonValue System.Json 只能在Silverlight中使用 是
JsonConvert、JArray、JObject、JValue、JProperty Newtonsoft.Json 通用 是
准备数据
实体类:

[DataContract]
public class Person
{
[DataMember(Order = 0, IsRequired = true)]
public string Name { get; set; }

[DataMember(Order = 1)]
public int Age { get; set; }

[DataMember(Order = 2)]
public bool Alive { get; set; }

[DataMember(Order = 3)]
public string[] FavoriteFilms { get; set; }

[DataMember(Order = 4)]
public Person Child { get; set; }
}
定义:

Action<object> log = o => Console.WriteLine(o);
Func<int, int, int> add = (x, y) => x + y;

var p1 = new Person {
Age = 12
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BruceCheng夏夏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值