C語言中使用JSON串對象讀取是一種非常常見的操作。JSON(JavaScript Object Notation)是一種用于數據交換的輕量級語言,具有易讀易寫的特點。下面介紹用C語言讀取JSON串對象的方法。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main(){ char *json_string = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; json_t *root = NULL; json_error_t error; root = json_loads(json_string, 0, &error); if(!root){ fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } json_t *name, *age, *city; const char *name_str, *city_str; name = json_object_get(root, "name"); age = json_object_get(root, "age"); city = json_object_get(root, "city"); name_str = json_string_value(name); city_str = json_string_value(city); printf("Name: %s\n", name_str); printf("Age: %d\n", json_integer_value(age)); printf("City: %s\n", city_str); json_decref(root); return 0; }
以上代碼首先定義了一個JSON串對象,接著使用json_loads函數將其解析為json_t類型的root對象。如果解析失敗,將會輸出錯誤信息并退出程序。
接著通過json_object_get函數,我們可以根據JSON串的key獲取對應的值。這里我們獲取了name、age、city三個字段的值,并將其轉換為對應的C語言數據類型。
最后我們輸出獲取到的值,并使用json_decref釋放root對象的內存。