在C語言中,我們常常需要將JSON字符串轉(zhuǎn)換為數(shù)組以便于處理數(shù)據(jù)。本篇文章就為大家介紹如何在C語言中做到這一點(diǎn)。
#include <stdio.h> #include <string.h> #include <jansson.h> int main() { const char *json_str = "[1, 2, 3, 4, 5]"; json_t *root; size_t i; root = json_loads(json_str, 0, NULL); if (!json_is_array(root)) { fprintf(stderr, "error: root is not an array\n"); json_decref(root); return 1; } for (i = 0; i< json_array_size(root); i++) { json_t *value = json_array_get(root, i); printf("%d\n", json_integer_value(value)); } json_decref(root); return 0; }
代碼部分使用的是jansson庫,這是一個(gè)C語言中的JSON解析庫,可以幫助我們處理JSON字符串。
首先,我們需要將JSON字符串轉(zhuǎn)換成jansson的json_t類型的對(duì)象。這可以通過json_loads()函數(shù)來實(shí)現(xiàn)。如果轉(zhuǎn)換失敗,函數(shù)會(huì)返回NULL。
在檢查我們得到的對(duì)象是否為數(shù)組之前,我們應(yīng)該檢查對(duì)象是否存在。如果對(duì)象不存在或者類型不匹配,我們都應(yīng)該釋放對(duì)象并返回錯(cuò)誤代碼。
檢查后,我們遍歷數(shù)組并輸出每一個(gè)元素。
最后不要忘記釋放json_t對(duì)象。