JSON數組是一種非常常見的數據類型,也是C語言中使用廣泛的數據類型之一。在JSON數組中查找特定字符串是一種常見的操作,下面我們將介紹C語言中如何查找JSON數組中的字符串。
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <jansson.h> const char *json_array_str = "[{\"name\":\"Jack\",\"age\":20,\"id\":123456}, {\"name\":\"Lucy\",\"age\":21,\"id\":456789}, {\"name\":\"Tom\",\"age\":22,\"id\":789012}]"; int main() { json_t *root; json_error_t error; root = json_loads(json_array_str, 0, &error); if (!root) { fprintf(stderr, "Failed to parse json: %s\n", error.text); return 1; } size_t index; json_t *value; json_array_foreach(root, index, value) { json_t *id = json_object_get(value, "id"); if (json_integer_value(id) == 456789) { // 找到了id為456789的用戶,輸出其姓名和年齡 json_t *name = json_object_get(value, "name"); json_t *age = json_object_get(value, "age"); printf("%s, %d years old\n", json_string_value(name), json_integer_value(age)); break; } } json_decref(root); return 0; }
上面的程序是一個簡單的JSON數組解析程序,它將一個JSON數組字符串轉換為一個json_t類型的對象,然后通過json_array_foreach函數遍歷數組中的每一個元素。對于每個元素,我們通過json_object_get函數獲取其屬性值,如果找到了id為456789的用戶,就輸出其姓名和年齡。請注意,我們使用了json_integer_value和json_string_value函數將屬性值轉換為int和char類型。
以上就是C語言中查找JSON數組中特定字符串的方法,希望對大家有所幫助。
下一篇vue 自動切圖