cJSON是一個輕量級的C語言JSON解析器庫。它非常適合嵌入式設備或低內存環境中使用,因為它只需要幾個幾乎可以忽略不計的開銷就可以解析JSON文本。
cJSON *root = cJSON_CreateObject();// 創建JSON對象 cJSON_AddItemToObject(root, "name", cJSON_CreateString("Tom"));// 添加字符串元素 cJSON_AddItemToObject(root, "age", cJSON_CreateNumber(18));// 添加數字元素 cJSON *array = cJSON_CreateArray();// 創建數組 cJSON_AddItemToArray(array, cJSON_CreateString("apple"));// 添加字符串元素到數組 cJSON_AddItemToArray(array, cJSON_CreateString("banana")); cJSON_AddItemToObject(root, "fruit", array);// 將數組添加為對象元素
該代碼使用cJSON庫創建了一個JSON對象和一個包含字符串元素的數組。可以通過在代碼中執行代碼將其序列化為JSON文本:
char *json_string = cJSON_Print(root); printf("%s\n", json_string);
將輸出:
{ "name": "Tom", "age": 18, "fruit": [ "apple", "banana" ] }
同樣,可以使用cJSON庫從JSON文本解析出JSON對象,并使用cJSON_GetObjectItem或cJSON_GetArrayItem等函數獲取和修改JSON元素。使用cJSON_Delete函數來釋放分配給JSON對象的內存。
cJSON *root = cJSON_Parse(json_string);// 將JSON文本解析為JSON對象 cJSON *name = cJSON_GetObjectItem(root, "name");// 獲取字符串元素 printf("%s: %s\n", name->string, name->valuestring); cJSON *array = cJSON_GetObjectItem(root, "fruit");// 獲取數組元素 int array_size = cJSON_GetArraySize(array);// 獲取數組大小 for(int i=0; ivaluestring); } cJSON_Delete(root);// 釋放內存
cJSON庫非常易于使用并且功能強大。它為C語言開發人員提供了解析和序列化JSON的一種簡單但強大的方式。
下一篇h5修改json文件