JSON(JavaScript Object Notation)是一種輕型的數(shù)據(jù)交換格式,常用于網(wǎng)絡(luò)數(shù)據(jù)傳輸和配置文件。在C語(yǔ)言中,讀寫(xiě)JSON數(shù)據(jù)需要用到相應(yīng)的幫助類(lèi)。
下面是一段示例代碼,用于讀取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庫(kù)中的json_load_file函數(shù)從文件中讀取JSON數(shù)據(jù),json_object_get函數(shù)獲取JSON對(duì)象中的值,json_string_value和json_integer_value分別獲取字符串和整數(shù)類(lèi)型的值。
下面是一段示例代碼,用于將JSON數(shù)據(jù)寫(xiě)入文件:
#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庫(kù)中的函數(shù),json_object和json_array函數(shù)創(chuàng)建JSON對(duì)象和數(shù)組,json_string和json_integer函數(shù)分別創(chuàng)建字符串和整數(shù)類(lèi)型的值,json_object_set_new向JSON對(duì)象中添加鍵值對(duì),json_dumps將JSON數(shù)據(jù)轉(zhuǎn)化為字符串,并寫(xiě)入文件中。
以上是C語(yǔ)言中操作JSON數(shù)據(jù)的基本使用方法,讀者可以根據(jù)自己的需求進(jìn)行修改和添加。