C Json是一種輕量級(jí)的數(shù)據(jù)交換格式,通常用于應(yīng)用程序之間的數(shù)據(jù)交互。在C Json中,我們可以通過(guò)遍歷指定的列來(lái)獲得我們需要的數(shù)據(jù)。下面我們來(lái)介紹一下如何使用C Json來(lái)實(shí)現(xiàn)這一功能。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char *json_str = "{\"name\":\"Jack\", \"age\":18, \"country\":\"China\"}"; json_t *json, *val; // 解析JSON對(duì)象 json_error_t error; json = json_loads(json_str, 0, &error); // 解析name const char *name; val = json_object_get(json, "name"); name = json_string_value(val); printf("name: %s\n", name); // 解析age int age; val = json_object_get(json, "age"); age = json_integer_value(val); printf("age: %d\n", age); // 解析country const char *country; val = json_object_get(json, "country"); country = json_string_value(val); printf("country: %s\n", country); // 釋放JSON對(duì)象 json_decref(json); return 0; }
上面的代碼中,我們使用了jansson這個(gè)第三方庫(kù)來(lái)解析JSON對(duì)象。在解析過(guò)程中,我們使用了json_object_get這個(gè)函數(shù)來(lái)獲取指定的列。其中,我們需要注意一些內(nèi)存的釋放問(wèn)題,比如說(shuō)需要使用json_decref這個(gè)函數(shù)來(lái)釋放JSON對(duì)象的內(nèi)存。