JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。它以易于讀寫的文本格式存在,且易于機器解析和生成。在C語言中,我們可以使用json-c庫來讀取和寫入JSON格式的數(shù)據(jù)。
下面介紹一下如何使用json-c進行JSON格式化輸出。
#include <stdio.h>
#include <json-c/json.h>
int main() {
// 創(chuàng)建JSON object
struct json_object *jobj = json_object_new_object();
// 添加key-value鍵值對到JSON object中
json_object_object_add(jobj, "name", json_object_new_string("Tom"));
json_object_object_add(jobj, "age", json_object_new_int(18));
json_object_object_add(jobj, "gender", json_object_new_string("male"));
// 格式化輸出JSON數(shù)據(jù)
printf("%s\n", json_object_to_json_string_ext(jobj, JSON_C_TO_STRING_PRETTY));
// 釋放內(nèi)存
json_object_put(jobj);
return 0;
}
上述代碼中,我們通過使用json_object_new_object()函數(shù)來創(chuàng)建一個JSON object,并通過json_object_object_add()函數(shù)向JSON object中添加了三個鍵值對,分別為“name”、“age”和“gender”。最后,我們使用json_object_to_json_string_ext()函數(shù)來將JSON數(shù)據(jù)格式化輸出到控制臺。
使用json_object_to_json_string_ext()函數(shù)時,第二個參數(shù)會影響輸出格式。在上述例子中,我們傳入了JSON_C_TO_STRING_PRETTY,這意味著輸出的JSON數(shù)據(jù)會經(jīng)過格式化,以便于人類閱讀。
json-c還提供了許多其他的函數(shù)來讀取和寫入JSON數(shù)據(jù)。我們可以使用json_object_get_*()函數(shù)來獲取JSON數(shù)據(jù)中某個key的value值,也可以使用json_object_array_*()函數(shù)來操作JSON數(shù)組。
總之,使用json-c庫進行JSON格式化輸出相對簡單,我們可以使用少量的代碼將JSON數(shù)據(jù)以易讀的形式輸出到控制臺,也可通過其他函數(shù)讀取、寫入JSON數(shù)據(jù)。