對象的存儲格式有許多種,其中一種比較常見的是 JSON(JavaScript Object Notation),它是一種輕量級的數(shù)據(jù)交換格式。C 語言的 json-c 庫提供了一些 API,可用于創(chuàng)建和解析 JSON 對象。
下面是一個使用 json-c 庫創(chuàng)建 JSON 對象的簡單示例:
json_object *obj = json_object_new_object(); json_object *name = json_object_new_string("John"); json_object *age = json_object_new_int(30); json_object_object_add(obj, "name", name); json_object_object_add(obj, "age", age); const char *json_str = json_object_to_json_string(obj); printf("JSON string: %s\n", json_str); json_object_put(obj);
在這個示例中,我們創(chuàng)建了一個 JSON 對象,包含兩個屬性:“name”和“age”。然后我們將這個對象轉(zhuǎn)換成一個字符串,并打印出來。
為了解析一個 JSON 字符串,我們可以使用 json-c 庫中的 json_tokener_parse() 函數(shù)。這個函數(shù)會返回一個對應(yīng)的 JSON 對象,我們可以使用 json_object_get_xxx() 函數(shù)來獲取其中的值。下面是一個使用 json-c 庫解析 JSON 字符串的示例:
const char *json_str = "{\"name\": \"John\", \"age\": 30}"; json_object *obj = json_tokener_parse(json_str); json_object *name = json_object_object_get(obj, "name"); json_object *age = json_object_object_get(obj, "age"); const char *name_str = json_object_get_string(name); int age_int = json_object_get_int(age); printf("Name: %s\n", name_str); printf("Age: %d\n", age_int); json_object_put(obj);
在這個示例中,我們首先將一個 JSON 字符串解析成一個 JSON 對象,然后分別獲取對象中的“name”和“age”屬性。最后我們打印出這些值,并釋放 JSON 對象的內(nèi)存。