在C語言中,我們經常需要讀取JSON格式的數據。JSON是一種輕量級的數據交換格式,常用于前后端數據交互。本文介紹如何使用C語言讀取JSON鍵值對。
#include#include #include #include "cJSON.h" int main() { char *json_str = "{ \"name\": \"張三\", \"age\": 18, \"gender\": \"male\" }"; cJSON *json = cJSON_Parse(json_str); if (json == NULL) { printf("JSON格式錯誤\n"); return -1; } cJSON *name = cJSON_GetObjectItem(json, "name"); if (name == NULL) { printf("找不到name鍵\n"); return -1; } printf("姓名:%s\n", name->valuestring); cJSON *age = cJSON_GetObjectItem(json, "age"); if (age == NULL) { printf("找不到age鍵\n"); return -1; } printf("年齡:%d\n", age->valueint); cJSON *gender = cJSON_GetObjectItem(json, "gender"); if (gender == NULL) { printf("找不到gender鍵\n"); return -1; } printf("性別:%s\n", gender->valuestring); cJSON_Delete(json); return 0; }
首先,我們需要引入cJSON庫。cJSON是一個基于C語言實現的JSON解析庫,可以方便地解析JSON字符串。
在main函數中,我們定義了一個json_str字符串,它是一個JSON格式的字符串。我們使用cJSON_Parse函數將其解析為一個cJSON對象。如果解析失敗,則返回NULL。
接下來,我們使用cJSON_GetObjectItem函數通過鍵名(name、age、gender)獲取相應的鍵值(json)。需要注意的是,這些鍵值有不同的類型,使用不同的獲取函數(valuestring、valueint)獲取。
最后,我們使用cJSON_Delete函數釋放cJSON對象的內存。