C JSON的使用方法讓你可以在C語言中序列化和反序列化JSON數據。C JSON API 使你可以更方便地將C數據結構轉換為JSON格式,反之亦然。下面是一些關于如何在C中使用JSON的示例代碼。
#include "cjson/cJSON.h" #includeint main() { char *json = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; cJSON *root = cJSON_Parse(json); cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); cJSON *city = cJSON_GetObjectItem(root, "city"); printf("Name: %s\n", name->valuestring); printf("Age: %d\n", age->valueint); printf("City: %s\n", city->valuestring); cJSON_Delete(root); return 0; }
上例是一個簡單的JSON解析代碼,可以從一個JSON字符串中提取數據。以下是代碼解釋:
- cJSON_Parse() - 用于解析JSON字符串,并返回一個cJSON指針。
- cJSON_GetObjectItem() - 根據名稱獲取JSON對象中的子元素。
- cJSON_Delete() - 用于釋放分配的cJSON指針。
此外,你還可以使用cJSON_CreateObject()和cJSON_CreateString()等函數構造JSON數據:
cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "John"); cJSON_AddNumberToObject(root, "age", 30); cJSON_AddStringToObject(root, "city", "New York"); char *json = cJSON_Print(root); printf("%s\n", json); cJSON_Delete(root);
這段代碼通過cJSON_CreateObject()函數創建了一個新的JSON對象,并使用cJSON_AddStringToObject()和cJSON_AddNumberToObject()函數向其添加子元素。最后,使用cJSON_Print()函數將JSON對象序列化為字符串,并打印出來。