C語言是一種廣泛應(yīng)用的計(jì)算機(jī)編程語言,可用于各種不同領(lǐng)域的開發(fā)。在該領(lǐng)域中,讀取JSON文件的需求日益增長。本文將介紹如何使用C語言讀取JSON。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char *json_string = "{\"id\": 1, \"name\": \"Tom\", \"age\": 20}"; json_t *root; json_error_t error; root = json_loads(json_string, 0, &error); if (!root) { fprintf(stderr, "Failed to parse json: %s\n", error.text); return 1; } json_t *id, *name, *age; json_unpack(root, "{s:i,s:s,s:i}", "id", &id, "name", &name, "age", &age); printf("id: %d, name: %s, age: %d\n", json_integer_value(id), json_string_value(name), json_integer_value(age)); json_decref(root); return 0; }
以上是一個(gè)簡單的C語言讀取JSON的程序。首先,需要引入jansson庫以處理JSON。接著,從JSON字符串中加載JSON,如"id": 1, "name": "Tom", "age": 20。若加載失敗,則輸出錯(cuò)誤信息并結(jié)束程序。如果加載成功,接下來使用json_unpack解析JSON。
其中,json_unpack的第一個(gè)參數(shù)為要解析的JSON對象,第二個(gè)參數(shù)為一個(gè)字符串,表示要解析的JSON格式。"s:i" 代表 key 是字符串,value 是整型。這里使用了 json_integer_value 以獲取整型值,使用了 json_string_value 以獲取字符串值。
最后,使用json_decref清除內(nèi)存并釋放資源。這樣就完成了對JSON的讀取。