C語言作為一門廣泛應用于系統編程的高級編程語言,在處理JSON數據方面也有其自己的優勢。在C語言中,我們可以通過解析JSON數據將其轉換為Dictionary(字典)的形式,便于后續的數據操作。
在實現這一過程中,我們可以借助第三方的JSON解析庫,在本文中,我們以cJSON為例,演示如何將JSON數據解析為Dictionary。
// 以下代碼基于cJSON解析庫,需要在引用前進行安裝 #include#include #include #include "cJSON.h" int main() { // 假設要解析的JSON數據如下 char *json = "{\n" "\"name\":\"小明\",\n" "\"age\":18,\n" "\"gender\":1,\n" "\"score\":[85, 90, 95]\n" "}"; // 解析JSON數據,并將其轉換為cJSON對象 cJSON *json_obj = cJSON_Parse(json); // 轉換成功后,我們可以根據JSON數據的結構,使用cJSON對象中提供的函數獲得其相應的數據內容 char *name = cJSON_GetObjectItem(json_obj, "name")->valuestring; int age = cJSON_GetObjectItem(json_obj, "age")->valueint; int gender = cJSON_GetObjectItem(json_obj, "gender")->valueint; // 對于JSON中的數組,我們需要遍歷向其轉換為cJSON數組對象,再遍歷數組對象獲得數組元素的內容 cJSON *score_arr = cJSON_GetObjectItem(json_obj, "score"); cJSON *score_obj = NULL; int i, score_len = cJSON_GetArraySize(score_arr); int *score = (int *)malloc(score_len * sizeof(int)); for (i = 0; i< score_len; i++) { score_obj = cJSON_GetArrayItem(score_arr, i); score[i] = score_obj->valueint; } // 將解析到的數據存儲到Dictionary中 struct dict { char *name; int age; int gender; int *score; }; struct dict person = {name, age, gender, score}; // 輸出Dictionary中的數據內容 printf("name: %s\n", person.name); printf("age: %d\n", person.age); printf("gender: %d\n", person.gender); printf("score: "); for (i = 0; i< score_len; i++) printf("%d ", person.score[i]); printf("\n"); // 釋放內存 free(score); return 0; }
通過以上代碼,我們成功地將JSON數據解析為Dictionary,并存儲在了結構體中,方便我們進行數據操作。
上一篇vue3 mixins
下一篇db2正則解析json