c語(yǔ)言獲取json字符串中的數(shù)據(jù)可以使用json-c庫(kù),該庫(kù)提供了一些函數(shù)來(lái)解析json字符串,其中最常用的是json_object_get函數(shù)。下面是一個(gè)簡(jiǎn)單的例子:
#include <stdio.h> #include <json-c/json.h> int main(void) { const char *json_str = "{\"name\":\"張三\",\"age\":18}"; json_object *obj = json_tokener_parse(json_str); json_object *name_obj = json_object_object_get(obj, "name"); json_object *age_obj = json_object_object_get(obj, "age"); printf("姓名:%s\n", json_object_get_string(name_obj)); printf("年齡:%d\n", json_object_get_int(age_obj)); json_object_put(obj); return 0; }
上面的例子解析了一個(gè)json字符串,獲取了其中的兩個(gè)屬性,分別是"name"和"age",然后通過(guò)json_object_get_string和json_object_get_int函數(shù)來(lái)獲取屬性的值。
需要注意的是,獲取json字符串中的屬性值時(shí)需要根據(jù)屬性的類型來(lái)選擇相應(yīng)的函數(shù),常用的函數(shù)有json_object_get_string、json_object_get_int、json_object_get_boolean、json_object_get_double等。
此外,如果json字符串中嵌套了數(shù)組或?qū)ο螅敲纯梢允褂胘son_object_array_get_idx和json_object_object_get函數(shù)來(lái)獲取其中的元素。
總體來(lái)說(shuō),使用json-c庫(kù)來(lái)解析json字符串十分方便,只需要使用幾個(gè)簡(jiǎn)單的函數(shù)就可以完成。不過(guò)需要注意的是,在使用該庫(kù)時(shí)需要保證json字符串的格式是正確的,否則可能會(huì)出現(xiàn)解析失敗的情況。