C 數(shù)據(jù)庫是一種廣泛應用于軟件開發(fā)的數(shù)據(jù)處理方式,它以結(jié)構(gòu)化數(shù)據(jù)形式存儲和管理數(shù)據(jù)。隨著互聯(lián)網(wǎng)的發(fā)展,越來越多的數(shù)據(jù)以非結(jié)構(gòu)化的方式存在,這時候 json 字符串就成了非常方便的數(shù)據(jù)傳輸和存儲格式。
{ "name": "張三", "age": 28, "gender": "男", "hobbies": ["游泳", "足球", "音樂"], "address": { "province": "廣東", "city": "深圳", "district": "南山區(qū)", "street": "科技園路" } }
上面的代碼是一個簡單的 json 字符串示例。它包含一個人的基本信息和地址信息。我們可以使用 C 語言中的 json-c 庫來解析和操作這個字符串。
#include#include int main() { const char* json_str = "{\"name\":\"張三\",\"age\":28,\"gender\":\"男\(zhòng)",\"hobbies\":[\"游泳\",\"足球\",\"音樂\"],\"address\":{\"province\":\"廣東\",\"city\":\"深圳\",\"district\":\"南山區(qū)\",\"street\":\"科技園路\"}}"; struct json_object* obj = json_tokener_parse(json_str); printf("姓名:%s\n", json_object_get_string(json_object_object_get(obj, "name"))); printf("年齡:%d\n", json_object_get_int(json_object_object_get(obj, "age"))); printf("性別:%s\n", json_object_get_string(json_object_object_get(obj, "gender"))); struct json_object* hob_arr = json_object_object_get(obj, "hobbies"); for (int i = 0; i< json_object_array_length(hob_arr); i++) { printf("興趣愛好:%s\n", json_object_get_string(json_object_array_get_idx(hob_arr, i))); } printf("地址:%s%s%s%s\n", json_object_get_string(json_object_object_get(json_object_object_get(obj, "address"), "province")), json_object_get_string(json_object_object_get(json_object_object_get(obj, "address"), "city")), json_object_get_string(json_object_object_get(json_object_object_get(obj, "address"), "district")), json_object_get_string(json_object_object_get(json_object_object_get(obj, "address"), "street"))); json_object_put(obj); return 0; }
上面的代碼使用了 json-c 庫中的 json_tokener_parse 函數(shù)將 json 字符串解析為一個 json_object 對象,并使用其他函數(shù)從中獲取值并輸出到控制臺中。
總的來說,json 字符串是 C 數(shù)據(jù)庫中非常方便的數(shù)據(jù)傳輸和存儲格式,我們可以使用 json-c 庫來解析和操作這些數(shù)據(jù)。希望本文能對大家有所幫助。