在 C 語言中,解析 JSON 類型數據需要用到第三方庫。常用的 JSON 解析庫有 cJSON、Jansson、JSMN 等。本文將以 cJSON 庫為例,介紹 C 語言如何解析 JSON 類型數據。
#include <stdio.h>#include <stdlib.h>#include <cJSON.h>int main() { char *jsonStr = "{\"name\":\"Tom\", \"age\":18}"; cJSON *root = cJSON_Parse(jsonStr); if (!root) { printf("json parse error\n"); exit(EXIT_FAILURE); } cJSON *name = cJSON_GetObjectItem(root, "name"); if (name) { printf("name:%s\n", name->valuestring); } cJSON *age = cJSON_GetObjectItem(root, "age"); if (age) { printf("age:%d\n", age->valueint); } cJSON_Delete(root); return 0; }
以上是解析 JSON 數據的代碼示例。首先定義了一個 JSON 字符串,然后通過 cJSON_Parse 函數將其轉為 cJSON 對象。接著使用 cJSON_GetObjectItem 函數獲取 JSON 中的對象和屬性值。最后使用 cJSON_Delete 函數釋放內存。
需要注意的是,cJSON 庫不支持 JSONPath 等高級操作,僅支持基礎的 JSON 解析。同時,cJSON 庫的使用也有一些限制和注意事項,比如處理 JSON 數據的大小不能超過 64KB,否則會出現內存泄漏等問題。