C語言是一門非常流行的編程語言,廣泛應用于各個領域。在開發過程中,我們經常需要將C語言中的數據結構轉化為JSON格式或者從JSON格式中讀取數據。這時候,我們就需要使用C語言流來轉換。
#include <stdio.h> #include <json-c/json.h> int main() { // 創建JSON對象 struct json_object* sample_json = json_object_new_object(); // 添加整數屬性 json_object_object_add(sample_json, "age", json_object_new_int(18)); // 添加字符串屬性 json_object_object_add(sample_json, "name", json_object_new_string("Tom")); // 將JSON對象轉換為字符串 const char* json_str = json_object_to_json_string_ext(sample_json, 0); // 打印JSON字符串 printf("%s\n", json_str); // 釋放JSON對象 json_object_put(sample_json); return 0; }
以上代碼演示了如何創建一個JSON對象,并將其轉化為字符串格式。在這個例子中,我們使用json-c
庫來操作JSON。
如果我們需要從JSON字符串中讀取數據,那么我們可以使用json_object_from_string()
函數來將字符串轉化為JSON對象:
const char* json_str = "{\"name\": \"Tom\", \"age\": 18}"; struct json_object* json_obj = json_object_from_string(json_str); // 獲取JSON對象中的屬性 struct json_object* name_obj; json_object_object_get_ex(json_obj, "name", &name_obj); const char* name_str = json_object_get_string(name_obj); printf("name: %s\n", name_str); struct json_object* age_obj; json_object_object_get_ex(json_obj, "age", &age_obj); int age_int = json_object_get_int(age_obj); printf("age: %d\n", age_int); // 釋放JSON對象 json_object_put(json_obj);
除了以上這些函數,json-c
庫還提供了很多其他的函數,可以方便地操作JSON對象。掌握這些函數的使用方法對于C語言開發者來說是非常有幫助的。