C JSON是一種使用純C語言編寫的JSON解析器和生成器。它提供了一種方便快捷的方式,將JSON數據結構讀入內存,或者將數據結構序列化為JSON格式的文本。
在使用C JSON時,我們需要使用cJSON.h頭文件,并在編譯時鏈接cJSON庫。下面的代碼展示了如何使用C JSON解析JSON格式的字符串:
cJSON *root = cJSON_Parse(json_string); if (!root) { printf("Error before: %s\n", cJSON_GetErrorPtr()); } else { cJSON *item = cJSON_GetObjectItem(root, "name"); if (cJSON_IsString(item) && (item->valuestring != NULL)) { printf("name=%s\n", item->valuestring); } cJSON_Delete(root); }
上面的代碼中,我們使用cJSON_Parse函數將JSON格式的字符串解析為C JSON對象。如果解析失敗,我們可以通過cJSON_GetErrorPtr函數獲取錯誤信息。如果解析成功,我們可以使用cJSON_GetObjectItem函數獲取指定名稱的JSON對象,并判斷它是否是字符串類型。最后,我們需要手動釋放C JSON對象。
下面的代碼展示了如何使用C JSON生成JSON格式的文本:
cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Alice"); cJSON_AddNumberToObject(root, "age", 20); char *json_text = cJSON_Print(root); printf("%s\n", json_text); cJSON_Delete(root); free(json_text);
上面的代碼中,我們使用cJSON_CreateObject函數創建一個C JSON對象,并使用cJSON_AddStringToObject和cJSON_AddNumberToObject函數添加字符串類型和數字類型的JSON對象。最后,我們使用cJSON_Print函數生成JSON格式的文本,并手動釋放C JSON對象。