JSON(JavaScript Object Notation)是一種輕型的數據交換格式,常用于網絡數據傳輸和配置文件。在C語言中,讀寫JSON數據需要用到相應的幫助類。
下面是一段示例代碼,用于讀取JSON文件:
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main(int argc, char **argv) { json_t *root; json_error_t error; root = json_load_file("example.json", 0, &error); if (!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } json_t *name = json_object_get(root, "name"); printf("name: %s\n", json_string_value(name)); json_t *age = json_object_get(root, "age"); printf("age: %d\n", json_integer_value(age)); json_decref(root); return 0; }
該代碼使用了jansson庫中的json_load_file函數從文件中讀取JSON數據,json_object_get函數獲取JSON對象中的值,json_string_value和json_integer_value分別獲取字符串和整數類型的值。
下面是一段示例代碼,用于將JSON數據寫入文件:
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main() { json_t *root, *data, *name, *age; root = json_object(); data = json_array(); name = json_string("John"); age = json_integer(23); json_array_append_new(data, name); json_array_append_new(data, age); json_object_set_new(root, "data", data); FILE *outfile = fopen("example.json", "w"); fputs(json_dumps(root, 0), outfile); fclose(outfile); json_decref(root); return 0; }
該代碼同樣使用了jansson庫中的函數,json_object和json_array函數創建JSON對象和數組,json_string和json_integer函數分別創建字符串和整數類型的值,json_object_set_new向JSON對象中添加鍵值對,json_dumps將JSON數據轉化為字符串,并寫入文件中。
以上是C語言中操作JSON數據的基本使用方法,讀者可以根據自己的需求進行修改和添加。