在C語言中,沒有內(nèi)置的Json庫,需要借助其他第三方庫來實現(xiàn)Json的解析和格式化。
#include <stdio.h> #include <jansson.h> int main() { const char* json_str = "{\"name\":\"Tom\",\"age\":18,\"hobbies\":[\"reading\",\"running\"]}"; json_t* root; json_error_t error; root = json_loads(json_str, 0, &error); if (root == NULL) { printf("Json load error on line %d: %s\n", error.line, error.text); return 1; } json_t* name = json_object_get(root, "name"); const char* name_str = json_string_value(name); printf("Name: %s\n", name_str); json_t* age = json_object_get(root, "age"); int age_int = json_integer_value(age); printf("Age: %d\n", age_int); json_t* hobbies = json_object_get(root, "hobbies"); size_t index; json_t* hobby; printf("Hobbies: "); json_array_foreach(hobbies, index, hobby) { printf("%s ", json_string_value(hobby)); } printf("\n"); json_decref(root); return 0; }
上述代碼使用了jansson庫來加載和解析Json字符串,并且可以獲取其中的屬性和數(shù)組元素。通過這種方式,C語言也可以實現(xiàn)Json的解析和格式化。