在C語言中,我們可以使用各種庫來解析和操作JSON數(shù)據(jù)。下面讓我們使用一個簡單的例子來演示如何使用JSON數(shù)據(jù)。
#include <stdio.h> #include <jansson.h> int main() { const char *json_str = "{ \"name\":\"Alice\", \"age\":25, \"is_student\":true }"; // json字符串 json_error_t error; json_t *json_obj = json_loads(json_str, JSON_DECODE_ANY, &error); // 解析json字符串為json對象 if (json_obj == NULL) { printf("JSON decode error: %s\n", error.text); return 1; } json_t *name = json_object_get(json_obj, "name"); // 獲取指定key的json對象 const char *name_str = json_string_value(name); // 獲取對象的值 printf("Name: %s\n", name_str); json_t *age = json_object_get(json_obj, "age"); int age_int = json_integer_value(age); printf("Age: %d\n", age_int); json_t *is_student = json_object_get(json_obj, "is_student"); int is_student_bool = json_boolean_value(is_student); printf("Is student: %s\n", is_student_bool ? "true" : "false"); json_decref(json_obj); // 釋放json對象 return 0; }
在這個例子中,我們使用了jansson庫來解析JSON數(shù)據(jù)。我們首先使用json_loads函數(shù)將JSON字符串解析為json_t類型的對象,然后使用json_object_get函數(shù)獲取指定key的json對象。我們可以使用不同的json_函數(shù)來獲取不同類型的JSON值,比如json_string_value獲取字符串類型的值,json_integer_value獲取整數(shù)類型的值。
最后,我們需要使用json_decref函數(shù)釋放json_t類型的對象,以避免內(nèi)存泄漏。
上一篇c 中生成json文件
下一篇python 有分號嗎