C JSON Value是C语言中的一个轻量级JSON库,它被广泛应用于数据交换、网页及移动应用程序中。
#include <cjson/cJSON.h> int main() { cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "cjson"); cJSON_AddNumberToObject(root, "version", 2.0); cJSON_AddTrueToObject(root, "active"); char *json_str = cJSON_Print(root); printf("%s", json_str); cJSON_Delete(root); free(json_str); return 0; }
以上代码创建了一个JSON对象,给它加入了三个键值对,并将它转化为JSON字符串输出。其中,cJSON_CreateObject()
用于创建一个JSON对象,cJSON_AddXXXToObject()
用于向对象中添加键值对,cJSON_Print()
并返回转化后的JSON字符串。
除了添加键值对,C JSON Value还支持解析和访问JSON字符串中的数据。以下代码用于解析JSON字符串,访问其中的键值对:
#include <cjson/cJSON.h> int main() { char *json_str = "{\"name\":\"cjson\",\"version\":2.0,\"active\":true}"; cJSON *root = cJSON_Parse(json_str); if (root != NULL) { cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *version = cJSON_GetObjectItem(root, "version"); cJSON *active = cJSON_GetObjectItem(root, "active"); printf("name:%s version:%.1f active:%d", name->valuestring, version->valuedouble, active->valueint); cJSON_Delete(root); } return 0; }
以上代码解析了一个JSON字符串,通过cJSON_GetObjectItem()
函数访问了其中的键值对,并输出了它们的值。注意,在使用cJSON_Parse()
函数解析JSON字符串后,需要使用cJSON_Delete()
函数释放内存。