在C語言中,讀取JSON數(shù)組數(shù)據(jù)是一項(xiàng)非常重要的任務(wù)。JSON是一種數(shù)據(jù)格式,經(jīng)常用于web應(yīng)用程序的數(shù)據(jù)交換。下面介紹如何使用C語言讀取JSON數(shù)組數(shù)據(jù)。
#include <stdio.h> #include <jansson.h> int main() { char *jsonStr = "[1, 2, 3, 4, 5]"; json_error_t error; json_t *root = json_loads(jsonStr, JSON_DECODE_ANY, &error); if(!root) { printf("error: on line %d: %s\n", error.line, error.text); return 1; } if(!json_is_array(root)) { printf("error: root is not an array\n"); json_decref(root); return 1; } size_t index; json_t *value; json_array_foreach(root, index, value) { if(!json_is_integer(value)) { printf("error: element %d is not an integer\n", (int)index); json_decref(root); return 1; } int val = json_integer_value(value); printf("%d ", val); } json_decref(root); return 0; }
在這段代碼中,首先使用json_loads()函數(shù)將JSON字符串轉(zhuǎn)換為JSON對(duì)象,如果轉(zhuǎn)換失敗,將會(huì)輸出錯(cuò)誤信息。接著使用json_is_array()函數(shù)判斷JSON對(duì)象是否是數(shù)組類型。如果JSON對(duì)象不是數(shù)組類型,將會(huì)輸出錯(cuò)誤信息并退出。
使用json_array_foreach()函數(shù),遍歷JSON數(shù)組中的每一個(gè)元素。對(duì)于每一個(gè)元素,使用json_is_integer()函數(shù)判斷它是否是一個(gè)整數(shù)類型。如果不是,就將會(huì)輸出錯(cuò)誤信息并退出。如果元素是一個(gè)整數(shù)類型,使用json_integer_value()函數(shù)獲取值并輸出。
最后使用json_decref()函數(shù)釋放JSON對(duì)象的內(nèi)存。這是一個(gè)好的習(xí)慣,因?yàn)椴会尫艃?nèi)存可能會(huì)導(dǎo)致內(nèi)存泄漏。
上一篇vue-tap.js
下一篇c 讀出 多層 json