在C語言中解碼JSON數據可以使用第三方庫,比如cJSON,它是一個輕量級的庫,易于使用。以下是一個簡單的示例:
#include <stdio.h> #include "cJSON.h" int main() { char* json_str = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; cJSON* json = cJSON_Parse(json_str); if (json == NULL) { printf("Error parsing JSON.\n"); return 1; } cJSON* name = cJSON_GetObjectItemCaseSensitive(json, "name"); cJSON* age = cJSON_GetObjectItemCaseSensitive(json, "age"); cJSON* city = cJSON_GetObjectItemCaseSensitive(json, "city"); printf("Name: %s\n", cJSON_GetStringValue(name)); printf("Age: %d\n", cJSON_GetNumberValue(age)); printf("City: %s\n", cJSON_GetStringValue(city)); cJSON_Delete(json); return 0; }
在上面的代碼中,我們使用了一個包含一些基本信息的JSON字符串作為輸入。我們首先調用cJSON_Parse函數來解析JSON并存儲在一個cJSON結構體中。如果解析失敗,需要注意檢查返回值并打印錯誤消息。接下來,我們使用cJSON_GetObjectItemCaseSensitive函數來獲取cJSON結構體中的特定信息,然后使用cJSON_GetStringValue和cJSON_GetNumberValue函數來獲取字符串和數字值。
CJSON庫中還有其他一些有用的函數可以幫助您解碼JSON數據。這個庫非常靈活,適用于許多不同用例。如果您需要處理JSON數據,我強烈建議您考慮使用CJSON庫。