C語言是一門強類型語言,特點是直接面向硬件,能夠高效的進行底層編程。在互聯網領域,json串已經是一種非常流行的數據交換格式。如何在C語言中獲取json串的數據呢?
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char *json_str = "{\"name\": \"Tom\", \"age\": 18}"; json_error_t error; json_t *root = json_loads(json_str, 0, &error); if (!root) { fprintf(stderr, "json 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_decref(root); return 0; }
這段C語言代碼通過調用json-c庫,將json串轉換成json_t結構體之后,根據json_t結構體獲取對應數據的值,并輸出。首先要使用json_loads()函數加載json串,并判斷是否出錯。如果加載成功后,就可以根據所定義的json_t類型,通過json_object_get()函數獲取到對應的json對象。然后使用json_string_value()或json_integer_value()函數將json對象的值轉換成C語言中的字符串或整型,最后輸出。