JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,它易于閱讀和編寫,也易于機(jī)器解析和生成。但是,對(duì)于C語(yǔ)言來(lái)說(shuō),處理JSON對(duì)象需要復(fù)雜的操作和解析技巧,因此有必要使用一些工具來(lái)簡(jiǎn)化這個(gè)過(guò)程。C JSON Reader就是其中一種工具。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char *json_string = "{\"name\": \"Alice\", \"age\": 20}"; json_t *root; json_error_t error; root = json_loads(json_string, 0, &error); if (root) { json_t *name = json_object_get(root, "name"); if (json_is_string(name)) { printf("Name: %s\n", json_string_value(name)); } json_t *age = json_object_get(root, "age"); if (json_is_number(age)) { printf("Age: %d\n", json_integer_value(age)); } json_decref(root); } else { printf("Error: %s\n", error.text); } return 0; }
上面的代碼演示了C JSON Reader的使用。首先,我們需要引入JSON庫(kù),這里使用的是jansson庫(kù)。然后我們定義一個(gè)JSON字符串,它包含兩個(gè)屬性:“name”和“age”。
接著,我們調(diào)用json_loads函數(shù)來(lái)將這個(gè)字符串解析成JSON對(duì)象。如果解析成功,我們就可以通過(guò)json_object_get函數(shù)來(lái)獲取指定的屬性。此處我們獲取了“name”和“age”屬性,并分別檢查它們的類型。
最后,我們需要使用json_decref函數(shù)來(lái)釋放內(nèi)存。這是因?yàn)镴SON對(duì)象是動(dòng)態(tài)分配的,在使用完后需要手動(dòng)釋放,否則會(huì)造成內(nèi)存泄漏。
上一篇vue axio
下一篇gosn解析json