C語言讀取JSON里的數組元素
#include <stdio.h> #include <jansson.h> int main() { char *json_string = "[1,2,3,4,5]"; json_t *root; json_error_t error; root = json_loads(json_string, 0, &error); if(!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } int array_size = json_array_size(root); printf("Array size is %d\n", array_size); int i; for(i = 0; i < array_size; i++) { json_t *element = json_array_get(root, i); int value = json_integer_value(element); printf("Element %d: %d\n", i, value); } json_decref(root); return 0; }
在這個例子里,我們通過jansson庫來讀取JSON數組里的元素。我們將一個JSON數組串放到了json_string里,將它載入root變量。
我們首先檢查root變量是否載入成功,如果沒有載入成功,我們將錯誤信息輸出到stderr,并返回1。
我們使用json_array_size函數來獲得序列的大小,并輸出它到控制臺。
int array_size = json_array_size(root); printf("Array size is %d\n", array_size);
然后我們使用for循環和json_array_get函數依次讀取數組里的元素。
int i; for(i = 0; i < array_size; i++) { json_t *element = json_array_get(root, i); int value = json_integer_value(element); printf("Element %d: %d\n", i, value); }
我們使用json_integer_value函數將JSON元素轉化為整數并輸出到控制臺。
最后,我們使用json_decref函數釋放root變量。