Json與Json工具介紹
Json 語(yǔ)法是 JavaScript 語(yǔ)法的子集,是 Key : value 的模式。
Json (JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。易于人閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個(gè)子集。 JSON采用完全獨(dú)立于語(yǔ)言的文本格式,但是也使用了類(lèi)似于C語(yǔ)言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。
比如下面就是一個(gè) json 對(duì)象,里面包含了字符串、整數(shù)、浮點(diǎn)數(shù)、普通數(shù)組、對(duì)象、 對(duì)象數(shù)組,從中可以窺探到 Json 的語(yǔ)法。Json中key值都是" "號(hào)的字符類(lèi)型,value值中 { } 表示是對(duì)象、[ ] 表示的是數(shù)組、" "表示的是字符串、null表示的時(shí)空,不能用"null"表示。?
JSON 值可以是:
數(shù)字(整數(shù)或浮點(diǎn)數(shù))
字符串(在雙引號(hào)中)
邏輯值(true 或 false)
數(shù)組(在中括號(hào)中)
對(duì)象(在大括號(hào)中)
null
cJSON是一個(gè)超輕巧,攜帶方便,單文件,簡(jiǎn)單的可以作為ANSI-C標(biāo)準(zhǔn)的JSON解析器。cJSON庫(kù)使解析和組裝JSON數(shù)據(jù)包的工作便會(huì)變得簡(jiǎn)單的多,下面是cJSON中CJSON結(jié)構(gòu)。(cJSON是采用C語(yǔ)言編寫(xiě)的)
next、prev 用于遍歷數(shù)組或?qū)ο箧湹?前向 后向 鏈表指針。child 指向數(shù)組或?qū)ο蟮?孩子節(jié)點(diǎn)。type 是 value 的類(lèi)型。valuestring 是字符串值。valueint 是整數(shù)值;。valuedouble 是浮點(diǎn)數(shù)值。string 是 key 的名字。
RapidJSON是騰訊開(kāi)源的一個(gè)高效的C++ JSON解析器及生成器,它是只有頭文件的C++庫(kù)。RapidJSON是跨平臺(tái)的,支持Windows, Linux, Mac OS X及iOS, Android。
RapidJSON特點(diǎn)
小而全:它同時(shí)支持SAX和DOM風(fēng)格的API,SAX解析器只有約500行代碼。(Document Object Model ,DOM 文檔對(duì)象模型 )
快:它的性能可與strlen()相比,可支持SSE2/SSE4.2加速,使用模版及內(nèi)聯(lián)函數(shù)去降低函數(shù)調(diào)用開(kāi)銷(xiāo)。
獨(dú)立:它不依賴(lài)于BOOST等外部庫(kù),它甚至不依賴(lài)于STL。
對(duì)內(nèi)存友好:在大部分32/64位機(jī)器上,每個(gè)JSON值只占16字節(jié)(除字符串外),它預(yù)設(shè)使用一個(gè)快速的內(nèi)存分配器,令分析器可以緊湊地分配內(nèi)存。
每個(gè)JSON值都儲(chǔ)存為Value類(lèi),而Document類(lèi)則表示整個(gè)DOM,它存儲(chǔ)了一個(gè)DOM 樹(shù)的根Value。RapidJSON的所有公開(kāi)類(lèi)型及函數(shù)都在rapidjson命名空間中。
WRITE-BUG研發(fā)團(tuán)隊(duì)衷心希望【W(wǎng)RITE-BUG數(shù)字空間】可以給每位同學(xué)一個(gè)屬于自己的秘密空間,同時(shí)祝愿大家在“公開(kāi)圈子”世界里,遇見(jiàn)志同道合的伙伴們,因?yàn)槲覀兣c大家一樣,都曾孤獨(dú)前行著。


