C JSON是一種用于在C語言中處理JSON數據的庫,它提供了一個簡單易用的接口,可以方便地將JSON數據解析成C語言數據結構,也可以將C語言數據結構序列化成JSON數據。
下面是一個C JSON解析JSON數據的實例:
#include <stdio.h> #include <stdlib.h> #include <cjson/cJSON.h> int main(void) { char *json_str = "{\"name\": \"Tom\", \"age\": 20}"; cJSON *root = cJSON_Parse(json_str); // 解析JSON數據 if (root == NULL) { printf("Error in parsing JSON data!\n"); return -1; } cJSON *name = cJSON_GetObjectItem(root, "name"); // 獲取name字段 cJSON *age = cJSON_GetObjectItem(root, "age"); // 獲取age字段 if (name == NULL || age == NULL) { printf("Error in parsing JSON data!\n"); cJSON_Delete(root); return -1; } printf("Name: %s\n", name->valuestring); printf("Age: %d\n", age->valueint); cJSON_Delete(root); // 釋放資源 return 0; }
以上代碼將JSON字符串"{\"name\": \"Tom\", \"age\": 20}"解析成了一個cJSON對象,并從中獲取了name和age字段的值,并打印出來。需要注意的是,解析JSON數據后需要手動釋放資源,否則會導致內存泄漏。
下面是一個C JSON將C語言數據結構序列化成JSON數據的實例:
#include <stdio.h> #include <stdlib.h> #include <cjson/cJSON.h> int main(void) { cJSON *root = cJSON_CreateObject(); // 創建一個JSON對象 if (root == NULL) { printf("Error in creating JSON object!\n"); return -1; } cJSON_AddStringToObject(root, "name", "Tom"); // 添加name字段 cJSON_AddNumberToObject(root, "age", 20); // 添加age字段 char *json_str = cJSON_Print(root); // 序列化JSON數據 if (json_str == NULL) { printf("Error in serializing JSON data!\n"); cJSON_Delete(root); return -1; } printf("%s\n", json_str); cJSON_Delete(root); // 釋放資源 free(json_str); // 釋放序列化后的JSON字符串的內存 return 0; }
以上代碼創建了一個JSON對象,并向其中添加了name和age字段的值,然后將其序列化成JSON字符串并打印出來。需要注意的是,序列化JSON數據后需要手動釋放序列化后的JSON字符串的內存,否則會導致內存泄漏。
上一篇mysql創建一張表
下一篇html彈窗密碼代碼