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