在C語言中,訪問JSON對象數組的元素是一種常見的操作。下面我們簡單介紹一下如何通過C語言訪問JSON對象數組元素。
// 引入相應的頭文件 #include <stdio.h> #include <string.h> #include <jansson.h> int main() { // 初始化JSON數據 char *jsonstr = "[{\"name\":\"Peter\", \"age\":20}, {\"name\":\"John\", \"age\":25},{\"name\":\"Marry\", \"age\":30}]"; // 解析JSON數據 json_t *root; json_error_t error; root = json_loads(jsonstr, 0, &error); // 獲取數組長度 int array_length = json_array_size(root); // 遍歷數組元素 for(int i = 0; i < array_length; i++) { json_t *node = json_array_get(root, i); json_t *name_node = json_object_get(node, "name"); json_t *age_node = json_object_get(node, "age"); const char *name = json_string_value(name_node); int age = json_integer_value(age_node); printf("name:%s age:%d\n", name, age); } // 釋放JSON對象內存 json_decref(root); return 0; }
以上代碼演示了如何通過Jansson解析JSON字符串,并遍歷數組元素,輸出每個元素的name和age屬性。
在代碼中,使用了Jansson第三方庫進行解析JSON字符以及訪問JSON對象數組元素的操作。在具體操作時,我們先使用json_loads函數將JSON字符串解析成json_t對象,然后使用json_array_size函數獲取數組元素個數,最后使用json_array_get和json_object_get函數獲取數組元素的name和age屬性。
需要注意的是,如果JSON數組中的元素類型不同,那么我們需要通過json_typeof函數進行判斷元素的類型。
上一篇vue2 href