[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()以后就变成这个模样了:

image

  • JsonObject

用来表现键值对集合,它可以这样构造:

var ob = new JsonObject {
    {"jInt", jInt}, 
    {"jString", jString}, 
    {"jDouble", jDouble}
};

ToString()以后:

image

最后说一下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();

 

image

作者:紫色永恒

出处:http://024hi.cnblogs.com/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利

posted @ 2011-12-06 11:35  董雨  阅读(212)  评论(0编辑  收藏  举报