cJSON庫(kù)是什么?
cJSON是一個(gè)輕量級(jí)的json解析庫(kù)。使用起來(lái)非常簡(jiǎn)單,整個(gè)庫(kù)非常地簡(jiǎn)潔,核心功能的實(shí)現(xiàn)都在cJSON.c文件,非常適合閱讀源代碼來(lái)學(xué)習(xí)C語(yǔ)言。最近讀完這個(gè)庫(kù)的源碼,分享自己收獲的一些心得。
什么是json,照搬json官網(wǎng)的說(shuō)法:
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。 易于人閱讀和編寫(xiě)。同時(shí)也易于機(jī)器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個(gè)子集。 JSON采用完全獨(dú)立于語(yǔ)言的文本格式,但是也使用了類似于C語(yǔ)言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。
cJSON庫(kù)里面有什么?
cjson庫(kù)github地址:https://github.com/DaveGamble/cJSON
整個(gè)庫(kù)包含cJSON.h和cJSON.c兩個(gè)文件,頭文件定義了一系列的API。這個(gè)庫(kù)最基本也最重要的功能就是解析一個(gè)json字符串,使用的API是cJSON_Parse。cJSON_Parse函數(shù)調(diào)用了cJSON_ParseWithOpts函數(shù),該函數(shù)實(shí)現(xiàn)了具體的邏輯。
兩個(gè)函數(shù)的原型如下:
CJSON_PUB