cJSON是一個(gè)輕型的C語(yǔ)言開(kāi)源解析JSON的庫(kù)。它具有易用性和高性能,使得它成為很多開(kāi)發(fā)人員的首選。但是,使用cJSON時(shí),也會(huì)遇到一些常見(jiàn)問(wèn)題。
1. cJSON解析JSON時(shí),返回值是什么?
cJSON *json = cJSON_Parse(text);
解析成功返回解析后的JSON對(duì)象,否則返回NULL。
2. cJSON如何獲取JSON對(duì)象的值?
cJSON *json = cJSON_Parse(text); char *name = cJSON_GetObjectItem(json, "name")->valuestring; int age = cJSON_GetObjectItem(json, "age")->valueint;
cJSON提供了訪(fǎng)問(wèn)JSON對(duì)象和值的API,使用cJSON_GetObjectItem()獲取指定名稱(chēng)的JSON對(duì)象,然后再根據(jù)類(lèi)型使用相應(yīng)的cJSON_GetXXX()方法獲取值。
3. cJSON修改JSON對(duì)象的值?
cJSON *json = cJSON_Parse(text); cJSON_GetObjectItem(json, "name")->valuestring = "Tom"; cJSON_GetObjectItem(json, "age")->valueint = 20;
通過(guò)cJSON_GetObjectItem()獲取JSON對(duì)象,然后直接修改valuestring或valueint即可改變JSON對(duì)象的值。
4. cJSON創(chuàng)建JSON對(duì)象?
cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Tom"); cJSON_AddNumberToObject(root, "age", 20);
使用cJSON_CreateObject()創(chuàng)建一個(gè)JSON對(duì)象,然后使用cJSON_AddXXXToObject()方法添加對(duì)應(yīng)類(lèi)型的值即可創(chuàng)建JSON對(duì)象。
5. cJSON將JSON對(duì)象轉(zhuǎn)換成JSON字符串?
cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Tom"); cJSON_AddNumberToObject(root, "age", 20); char *str = cJSON_Print(root);
cJSON_Print()方法會(huì)將JSON對(duì)象轉(zhuǎn)換成JSON字符串,并返回字符串指針。
6. cJSON釋放JSON對(duì)象和JSON字符串?
cJSON *root = cJSON_Parse(text); char *str = cJSON_Print(root); cJSON_Delete(root); free(str);
使用cJSON_Delete()方法釋放JSON對(duì)象,使用free()方法釋放JSON字符串。
以上是對(duì)cJSON的一些常見(jiàn)問(wèn)題的解答,希望對(duì)大家有所幫助。