C語言有一個流行的JSON解析庫叫做cJSON,它允許使用C語言以一種簡潔的方式解析JSON字符串。假如我們有一個包含多個對象元素的JSON字符串,我們該如何使用cJSON獲取其中對象的個數組呢?
#include#include #include #include "cJSON.h" //需要引入cJSON庫 int main() { char *json_str = "{\"objects\":[{\"name\":\"obj1\",\"id\":1}, {\"name\":\"obj2\",\"id\":2}, {\"name\":\"obj3\",\"id\":3} ]}"; cJSON *root = cJSON_Parse(json_str); cJSON *objects = cJSON_GetObjectItem(root, "objects"); int obj_count = cJSON_GetArraySize(objects); printf("There are %d objects in the array:\n", obj_count); for (int i = 0; i< obj_count; i++) { cJSON *obj = cJSON_GetArrayItem(objects, i); cJSON *name = cJSON_GetObjectItem(obj, "name"); cJSON *id = cJSON_GetObjectItem(obj, "id"); printf("Object %d - name:%s, id:%d\n", i, cJSON_GetStringValue(name), cJSON_GetNumberValue(id)); } cJSON_Delete(root); return 0; }
以上代碼使用cJSON_Parse函數將JSON字符串轉換成cJSON對象,并使用cJSON_GetObjectItem函數獲取其中名為"objects"的數組對象,接著使用cJSON_GetArraySize獲取數組元素個數。最后循環遍歷整個數組,獲取其中每個對象的"name"和"id"屬性,并打印出來.
上一篇vue 打開新窗口