[Silverlight]奇技银巧系列-2(转)
http://www.cnblogs.com/024hi/archive/2009/09/15/1567256.html
我想对于搞web开发的人来说,JSON应该是相当亲切而熟悉的字眼。
直到.NET Framework3.5,在.NET中处理JSON才变得轻松一些,而JSON.NET这类的辅助项目也让.NET对JSON处理锦上添花。没记错的话是Json.NET3.0提出了JObject的概念,那真的很爽…
虽然Json.NET最近也推出了支持Silverlight的类库项目,不过对于Silverlight这种客户端的东西,多弄个dll进去难免影响初始化(下载)速度,对于有“洁癖”的你我来说着实不够尽善尽美。
不过System.Json拯救了我们。在Silverlight中,这个程序集提供了对JSON类型数据的支持,有了它你就可以使用c#或者vb.net代码处理Json对象了。
该命名空间下包含4个类:
- JsonValue
其他三个类的基类。它提供了用来处理string和stream的Load()、Save()、Parse()等方法。它的ToString()方法被重载,用来以字符串形式显示原始Json.
- JsonPrimitive
用来将CLR中的原始类型(如byte,string和int等)处理为Json。它一般这么用:
var jInt = new JsonPrimitive(25);
var jString = new JsonPrimitive("abc");
var jDouble = new JsonPrimitive(3.14);
- JsonArray
该类代表一个JsonValue类型的数组。参照上面例子中的的JsonPrimitive,JsonArray可以这样构造:
var ar = new JsonArray { jInt, jString, jDouble };
自然,ToString()以后就变成这个模样了:
- JsonObject
用来表现键值对集合,它可以这样构造:
var ob = new JsonObject {
{"jInt", jInt},
{"jString", jString},
{"jDouble", jDouble}
};
ToString()以后:
最后说一下JsonType枚举,该枚举包括
- Array
- Bollean
- Number
- Object
- String
它由JsonValue的JsonType属性返回,反映该JsonValue的实例所代表的对应CLR属性的类型。
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.AppendLine("JInt的JsonType:" + jInt.JsonType);
sb.AppendLine("jString的JsonType:" + jString.JsonType);
sb.AppendLine("jDouble的JsonType:" + jDouble.JsonType);
sb.AppendLine("ar的JsonType:" + ar.JsonType);
sb.AppendLine("ob的JsonType:" + ob.JsonType);
outputBlock.Text = sb.ToString();
作者:紫色永恒
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利