通過(guò)序列化將.net對(duì)象轉(zhuǎn)換為JSON字符串
使用LINQ to JSON定制JSON數(shù)據(jù)
JSON 語(yǔ)法是 JavaScript 對(duì)象表示法語(yǔ)法的子集。
JSON 數(shù)據(jù)的書(shū)寫(xiě)格式是:名稱/值對(duì)。
名稱/值對(duì)包括字段名稱(在雙引號(hào)中),后面寫(xiě)一個(gè)冒號(hào),然后是值:
這很容易理解,等價(jià)于這條 JavaScript 語(yǔ)句:
l 數(shù)字(整數(shù)或浮點(diǎn)數(shù))
經(jīng)過(guò)對(duì)象、數(shù)組2種結(jié)構(gòu)就可以組合成復(fù)雜的數(shù)據(jù)結(jié)構(gòu)了。
按照最簡(jiǎn)單的形式,可以用下面這樣的 JSON 表示"名稱 / 值對(duì)":
如果使用 JSON,就只需將多個(gè)帶花括號(hào)的記錄分組在一起:
JSON和XML的可讀性可謂不相上下,一邊是簡(jiǎn)易的語(yǔ)法,一邊是規(guī)范的標(biāo)簽形式,很難分出勝負(fù)。
XML和JSON都使用結(jié)構(gòu)化方法來(lái)標(biāo)記數(shù)據(jù),下面來(lái)做一個(gè)簡(jiǎn)單的比較。
用XML表示中國(guó)部分省市數(shù)據(jù)如下:
JSON文件讀入到內(nèi)存中就是字符串,.NET操作JSON就是生成與解析JSON字符串。操作JSON通常有以下幾種方式:
1. 原始方式:自己按照J(rèn)SON的語(yǔ)法格式,寫(xiě)代碼直接操作JSON字符串。如非必要,應(yīng)該很少人會(huì)走這條路,從頭再來(lái)的。
(4)使用JsonSerializer讀寫(xiě)對(duì)象(基于JsonWriter與JsonReader):
此外,如果上面的JsonTextReader等類編譯不過(guò)的話,說(shuō)明是我們自己修改過(guò)的類,換成你們自己的相關(guān)類就可以了,不影響使用。
此外,從最后一句也可以看到,序列化與反序列化是深拷貝的一種典型的實(shí)現(xiàn)方式。
這里要注意,這里的Project類和成員要加相關(guān)的Attribute:
JSON驗(yàn)證工具:http://jsonlint.com/
JSON簡(jiǎn)明教程:http://www.w3school.com.cn/json/
Newtonsoft.Json類庫(kù)下載:http://json.codeplex.com/
通過(guò)序列化將.net對(duì)象轉(zhuǎn)換為JSON字符串
比如,現(xiàn)在我們有一個(gè)TStudent的學(xué)生表,表中的字段和已有數(shù)據(jù)如圖所示
從圖中我們可以看到,數(shù)據(jù)庫(kù)中的5條記錄全部取出來(lái)并轉(zhuǎn)化為json字符串了。
使用LINQ to JSON定制JSON數(shù)據(jù)
http://www.cnblogs.com/dxy1982/archive/2012/02/20/2355619.html
http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html
作者:初行
Q Q:121866673
來(lái)源:zxlovenet.cnblogs.com
聲明:本文原創(chuàng)發(fā)表于博客園,作者為初行本文歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,否則視為侵權(quán)。
聯(lián)系客服