在C語言編程中,經常需要將JSON數組轉換為集合。集合是一種常見的數據結構,可以存儲多個元素并提供各種操作。JSON是一種輕量級的數據交換格式,常用于數據傳輸和存儲。
轉換JSON數組到集合的過程可以使用cJSON庫完成。cJSON是一個簡單易用的JSON解析器和生成器,它可以將JSON字符串轉換為C語言中的各種數據類型,包括數組和集合。
#include <stdio.h> #include <cJSON.h> int main() { char *json_str = "{\"students\":[{\"name\":\"Alice\",\"age\":18},{\"name\":\"Bob\",\"age\":19},{\"name\":\"Cathy\",\"age\":20}]}"; cJSON *root = cJSON_Parse(json_str); if (root == NULL) { printf("parse failed!\n"); return 1; } cJSON *students = cJSON_GetObjectItem(root, "students"); int size = cJSON_GetArraySize(students); for (int i = 0; i< size; i++) { cJSON *student = cJSON_GetArrayItem(students, i); cJSON *name = cJSON_GetObjectItem(student, "name"); cJSON *age = cJSON_GetObjectItem(student, "age"); printf("name: %s, age: %d\n", cJSON_GetStringValue(name), age->valueint); } cJSON_Delete(root); return 0; }
上面的代碼演示了如何將JSON數組轉換為集合。首先,我們定義一個JSON字符串,其中包含一個名為“students”的數組,每個數組項都包含一個名為“name”的字符串和一個名為“age”的整數。然后,我們使用cJSON_Parse函數將JSON字符串解析為一個cJSON對象,如果解析失敗則返回NULL。接下來,我們使用cJSON_GetObjectItem函數獲取“students”數組的對象,然后使用cJSON_GetArraySize獲取數組長度,使用循環遍歷每個數組項。在循環中,我們使用cJSON_GetArrayItem獲取單個數組項,再使用cJSON_GetObjectItem獲取其包含的“name”和“age”字段,最后將這些字段的值轉換為C語言中的對應類型并輸出。
最后,我們使用cJSON_Delete函數釋放cJSON對象所占用的內存。
上一篇c json數組生成器
下一篇html字體大小設置失敗