一个.NET通用JSON解析/构建类的实现(c#)
在.NET Framework 3.5中已经提供了一个JSON对象的序列化工具,但是他是强类型的,必须先按JSON对象的格式定义一个类型,并将类型加上JSON序列化特性。本文将试图提供一个高度灵活的JSON通用类型(JsonObject),实现对JSON的解析及序列化。
假设JSON对象内容如下:
隐藏行号 复制代码 ? JSON
使用JsonObject来构建,可选择以下三种方式:
方式一:
隐藏行号 复制代码 ? C#
-
-
();
-
json[());
-
json[);
-
>("orders");
-
json[.Now.ToLongTimeString());
-
json[);
-
json[();
-
());
-
book[);
-
book[);
-
book = json[());
-
book[);
-
book[);
方式二:
隐藏行号 复制代码 ? C#
-
-
((a) =>
-
{
-
a[((b) =>
-
{
-
b[.Now.ToLongTimeString());
-
b[);
-
b[();
-
b[((c) =>
-
{
-
c[);
-
c[);
-
}));
-
b[((c) =>
-
{
-
c[);
-
c[);
-
}));
-
}));
-
a[);
-
});
方式三:
隐藏行号 复制代码 ? C#
-
-
(jsonStr);
获取Json对象属性值的方法,也有三种方式:
隐藏行号 复制代码 ? C#
-
-
>()["books"].GetValue<<SPAN style="COLOR: rgb(43,145,175)">List<<SPAN style="COLOR: rgb(43,145,175)">JsonProperty>>()[1].GetValue<<SPAN style="COLOR: rgb(43,145,175)">JsonObject>()["name"].Value);
-
-
].Value);
-
-
].Value);
直接使用ToString函数,将JsonObject转换为Json字符串:
隐藏行号 复制代码 ? C#
-
jsonStr = json.ToString();
注意:
我在重载ToString函数时,并没有将字符串转换为JavsScript字符串类型(即对需要转义的字符的处理),当然,要实现也是极其简单的。另外,对于带String参数的ToString,我也为做特殊处理,感兴趣的朋友可自行实现。
版权声明:本文为博主原创文章,未经博主允许不得转载。