在C語言中,讀取JSON文件是常見的操作之一。通過讀取JSON文件,我們可以在程序中使用JSON格式的數(shù)據(jù)進行數(shù)據(jù)處理和操作。在本文中,我們將介紹如何使用C語言讀取JSON文件。
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main() { FILE *fp; char buffer[1024]; fp = fopen("example.json", "r"); fread(buffer, 1024, 1, fp); fclose(fp); json_error_t error; json_t *root = json_loads(buffer, 0, &error); if(!root) { printf("error: on line %d: %s\n", error.line, error.text); exit(1); } json_t *data = json_object_get(root, "data"); int len = json_array_size(data); for (int i=0; i<len; i++) { json_t *item = json_array_get(data, i); json_t *name = json_object_get(item, "name"); json_t *age = json_object_get(item, "age"); char *name_str = json_string_value(name); int age_int = json_integer_value(age); printf("name: %s, age: %d\n", name_str, age_int); } json_decref(root); return 0; }
上面的代碼使用了jansson庫,該庫提供了一組API來讀取和處理JSON文件。
#include <jansson.h> json_t *json_loads(const char *buffer, size_t buflen, json_error_t *error);
json_loads()函數(shù)可以將JSON字符串轉換為JSON對象,第一個參數(shù)為JSON字符串,第二個參數(shù)為長度,第三個參數(shù)為錯誤信息的指針。如果JSON轉換成功,則返回JSON對象;否則,返回NULL。
json_t *json_object_get(const json_t *object, const char *key);
json_object_get()函數(shù)可以返回JSON對象中指定鍵的值。第一個參數(shù)為JSON對象,第二個參數(shù)為需要返回值的鍵名。
size_t json_array_size(const json_t *array); json_t *json_array_get(const json_t *array, size_t index);
json_array_size()函數(shù)返回數(shù)組的長度,json_array_get()函數(shù)返回數(shù)組中指定索引的值。
通過以上函數(shù)的調用,我們可以很方便地讀取JSON文件中的數(shù)據(jù)并進行處理。