C語(yǔ)言中有許多處理JSON的庫(kù),其中一個(gè)比較常用的是cJSON。
下面是一個(gè)簡(jiǎn)單的例子,展示了如何使用cJSON將JSON格式的數(shù)據(jù)轉(zhuǎn)換為C語(yǔ)言的對(duì)象。
#include <stdio.h> #include <cJSON.h> int main() { // 定義JSON字符串 char* json_str = "{\ \"name\": \"張三\",\ \"age\": 20,\ \"score\": {\ \"chinese\": 90,\ \"math\": 80,\ \"english\": 70\ }\ }"; // 解析JSON字符串 cJSON* root = cJSON_Parse(json_str); // 獲取name字段 cJSON* name = cJSON_GetObjectItem(root, "name"); printf("name: %s\n", name->valuestring); // 獲取age字段 cJSON* age = cJSON_GetObjectItem(root, "age"); printf("age: %d\n", age->valueint); // 獲取score字段 cJSON* score = cJSON_GetObjectItem(root, "score"); // 獲取chinese字段 cJSON* chinese = cJSON_GetObjectItem(score, "chinese"); printf("chinese score: %d\n", chinese->valueint); // 獲取math字段 cJSON* math = cJSON_GetObjectItem(score, "math"); printf("math score: %d\n", math->valueint); // 獲取english字段 cJSON* english = cJSON_GetObjectItem(score, "english"); printf("english score: %d\n", english->valueint); // 刪除cJSON對(duì)象 cJSON_Delete(root); return 0; }
該例子中使用了cJSON提供的多個(gè)API,包括cJSON_Parse、cJSON_GetObjectItem等。通過(guò)這些API可以方便地將JSON字符串轉(zhuǎn)換為C語(yǔ)言的對(duì)象,并對(duì)其進(jìn)行操作。