[Silverlight]奇技银巧系列-2
Silverlight奇技銀巧系列:
所有該系列中的文章只為介紹一些Silverlight中或隱藏在Silverlight .NET framework鮮為人知的知識(shí)和技巧。這些文章并非教程,也是不是什么技術(shù)指導(dǎo),您只需對(duì)文章介紹的內(nèi)容保有印象。這些知識(shí)和技巧也許會(huì)在不經(jīng)意間綻放銀色光芒。
我想對(duì)于搞web開(kāi)發(fā)的人來(lái)說(shuō),JSON應(yīng)該是相當(dāng)親切而熟悉的字眼。
直到.NET Framework3.5,在.NET中處理JSON才變得輕松一些,而JSON.NET這類(lèi)的輔助項(xiàng)目也讓.NET對(duì)JSON處理錦上添花。沒(méi)記錯(cuò)的話是Json.NET3.0提出了JObject的概念,那真的很爽…
雖然Json.NET最近也推出了支持Silverlight的類(lèi)庫(kù)項(xiàng)目,不過(guò)對(duì)于Silverlight這種客戶端的東西,多弄個(gè)dll進(jìn)去難免影響初始化(下載)速度,對(duì)于有“潔癖”的你我來(lái)說(shuō)著實(shí)不夠盡善盡美。
不過(guò)System.Json拯救了我們。在Silverlight中,這個(gè)程序集提供了對(duì)JSON類(lèi)型數(shù)據(jù)的支持,有了它你就可以使用c#或者vb.net代碼處理Json對(duì)象了。
該命名空間下包含4個(gè)類(lèi):
- JsonValue
其他三個(gè)類(lèi)的基類(lèi)。它提供了用來(lái)處理string和stream的Load()、Save()、Parse()等方法。它的ToString()方法被重載,用來(lái)以字符串形式顯示原始Json.
- JsonPrimitive
用來(lái)將CLR中的原始類(lèi)型(如byte,string和int等)處理為Json。它一般這么用:
var jInt = new JsonPrimitive(25); var jString = new JsonPrimitive("abc"); var jDouble = new JsonPrimitive(3.14);- JsonArray
該類(lèi)代表一個(gè)JsonValue類(lèi)型的數(shù)組。參照上面例子中的的JsonPrimitive,JsonArray可以這樣構(gòu)造:
var ar = new JsonArray { jInt, jString, jDouble };自然,ToString()以后就變成這個(gè)模樣了:
- JsonObject
用來(lái)表現(xiàn)鍵值對(duì)集合,它可以這樣構(gòu)造:
var ob = new JsonObject {{"jInt", jInt}, {"jString", jString}, {"jDouble", jDouble} };ToString()以后:
最后說(shuō)一下JsonType枚舉,該枚舉包括
- Array
- Bollean
- Number
- Object
- String
它由JsonValue的JsonType屬性返回,反映該JsonValue的實(shí)例所代表的對(duì)應(yīng)CLR屬性的類(lèi)型。
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();?
轉(zhuǎn)載于:https://www.cnblogs.com/024hi/archive/2009/09/15/1567256.html
總結(jié)
以上是生活随笔為你收集整理的[Silverlight]奇技银巧系列-2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: tornado 第一篇
- 下一篇: [导入]相片: 53787515.jp