C語言是一種通用型的編程語言,廣泛應用于各種領域。隨著信息量的增長,JSON已經成為了一種非常常見的數據格式。本文將介紹如何在C語言中將JSON字符串轉換為列表。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char *json_str = "{\"name\":\"張三\",\"age\":20,\"score\":[80,90,100]}"; json_error_t error; json_t *json_obj = json_loads(json_str, 0, &error); if(!json_obj) { fprintf(stderr, "JSON Parser Error [%d]: %s\n", error.line, error.text); return 1; } json_t *name, *age, *score; name = json_object_get(json_obj, "name"); age = json_object_get(json_obj, "age"); score = json_object_get(json_obj, "score"); printf("name: %s\nage: %d\nscore: [\n", json_string_value(name), json_integer_value(age)); int i; for(i = 0; i < json_array_size(score); i++) { printf("%d", json_integer_value(json_array_get(score, i))); if(i != json_array_size(score) - 1) { printf(", "); } } printf("]\n"); json_decref(json_obj); return 0; }
首先,在代碼的頭部我們需要引入jansson庫。然后,我們聲明一個JSON格式的字符串,并使用json_loads函數將其轉換為json_t類型的對象,如果轉換失敗,我們需要使用json_error_t結構體來記錄錯誤信息。
接著,我們使用json_object_get函數分別獲取"name"、"age"和"score"三個字段的值,由于"score"是一個數組類型,因此我們需要使用json_array_size和json_array_get函數來遍歷它。
最后,我們使用json_decref函數來釋放JSON對象所占用的內存空間。
通過以上的步驟,我們成功地將JSON字符串轉換為了列表。這種方法簡單、高效,非常適合快速處理JSON數據。