對于配置JSON 文本分析器說明
我們已經介紹了如何在JSON 文本中、以及通過 Jayrock 在 .NET Framework 中使用 JSON,接下來我們來看一個關于在何處以及如何應用這些知識的實際示例??紤] ASP.NET 2.0 的客戶端腳本回調功能。
它可簡化 web 瀏覽器向 ASP.NET 頁面(或向頁面中的特定控件)發(fā)出帶外調用的過程。在典型的回調情形中,瀏覽器中的客戶端腳本將數(shù)據打包并回送到 web 服務器,由服務器端方法進行某些處理。從服務器收到響應數(shù)據后,客戶端會用它來更新瀏覽器顯示。
以下示例代碼使用 JsonTextReader 類,對包含七大洲名稱的字符串數(shù)組的 JSON 文本表示形式進行分析。每個以字母“A”開頭的洲會發(fā)送到控制臺:注意Jayrock 中的 JsonTextReader 類是一個非常自由的 JSON 文本分析器。
它實際上允許的語法要比 RFC 4627 中列出的規(guī)則所規(guī)定的有效 JSON 文本多得多。例如,就象在 JavaScript 中一樣,JsonTextReader 類允許單行和多行注釋出現(xiàn)在 JSON 文本內。單行注釋以雙斜杠 (//) 開頭,多行注釋以斜杠星號 (/*) 開頭,并以星號斜杠 (*/) 結尾。單行注釋甚至能以井字號 (#) 開頭。
這在 Unix 樣式的配置文件中十分常見。在所有實例中,分析器會完全跳過注釋,不會通過 API 公開。和在 JavaScript 中一樣,JsonTextReader 允許以撇號 (') 分隔 JSON 字符串。該分析器甚至可以容忍最后一個對象成員或者數(shù)組元素后面多余的逗號。#t#
即使具備所有這些附加內容,JsonTextReader 仍是符合標準的分析器!而 JsonTextWriter 則只能產生嚴格符合標準的 JSON 文本。這遵循了通常所說的可靠性原則,即“嚴以律己,寬以待人”。
要將 JSON 文本直接轉換為 .NET 對象,請使用 JsonConvert 類導入方法,指定輸出類型和 JSON 文本。以下示例顯示了從 JSON 字符串數(shù)組到 .NET 字符串數(shù)組的轉換:
- stringjsonText=@"["Europe","Asia","Australia","Antarctica",
 - "NorthAmerica","SouthAmerica","Africa"]";
 - using(JsonTextReaderreader=newJsonTextReader(new
 - StringReader(jsonText)))
 - {
 - while(reader.Read())
 - {
 - if(reader.TokenClass==JsonTokenClass.String&
 - reader.Text.StartsWith("A"))
 - {
 - Console.WriteLine(reader.Text);
 - }
 - }
 - }
 















 
 
 




 
 
 
 