欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 如何創(chuàng)建 json文件怎么打開(kāi)

JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,它具有結(jié)構(gòu)清晰、易讀易寫(xiě)、易于解析等特點(diǎn),并且經(jīng)常被用于Web應(yīng)用程序之間的數(shù)據(jù)通信。在C語(yǔ)言中,我們可以利用幾個(gè)第三方庫(kù)來(lái)創(chuàng)建和解析JSON文件。

首先,我們需要安裝以下兩個(gè)庫(kù):

sudo apt-get install libjansson-dev
sudo apt-get install libjson-c-dev

接下來(lái),我們來(lái)看看如何使用libjansson來(lái)創(chuàng)建JSON文件。以下是一個(gè)簡(jiǎn)單的示例:

#include <jansson.h>
int main()
{
json_t* root = json_object(); //創(chuàng)建根節(jié)點(diǎn)
json_t* array = json_array(); //創(chuàng)建JSON數(shù)組
for(int i = 0; i< 5; ++i)
{
json_t* json_obj = json_object(); //創(chuàng)建JSON對(duì)象
json_object_set_new(json_obj, "name", json_string("Tom")); //添加屬性
json_object_set_new(json_obj, "age", json_integer(20)); //添加屬性
json_array_append_new(array, json_obj); //將對(duì)象添加到數(shù)組中
}
json_object_set_new(root, "students", array); //將數(shù)組添加到根節(jié)點(diǎn)中
json_dump_file(root, "students.json", JSON_INDENT(4)); //將JSON寫(xiě)入文件中,并且縮進(jìn)4個(gè)空格
json_decref(root); //釋放json_t對(duì)象
return 0;
}

通過(guò)上面的代碼,我們可以生成如下的JSON文件:

{
"students": [
{
"name": "Tom",
"age": 20
},
{
"name": "Tom",
"age": 20
},
{
"name": "Tom",
"age": 20
},
{
"name": "Tom",
"age": 20
},
{
"name": "Tom",
"age": 20
}
]
}

接下來(lái),我們來(lái)看看如何使用libjson-c來(lái)解析JSON文件。以下是一個(gè)簡(jiǎn)單的示例:

#include <stdio.h>
#include <json-c/json.h>
int main()
{
FILE* fp = fopen("students.json", "r"); //打開(kāi)JSON文件
char buf[1024] = {0};
fread(buf, 1, 1024, fp); //讀取文件內(nèi)容
json_object* root = json_tokener_parse(buf); //解析JSON
json_object* array = NULL;
if(json_object_object_get_ex(root, "students", &array))
{
int array_len = json_object_array_length(array); //獲取數(shù)組長(zhǎng)度
for(int i = 0; i< array_len; ++i)
{
json_object* json_obj = json_object_array_get_idx(array, i); //獲取數(shù)組元素
json_object* name_obj = NULL;
json_object* age_obj = NULL; 
if(json_object_object_get_ex(json_obj, "name", &name_obj) && json_object_object_get_ex(json_obj, "age", &age_obj))
{
printf("name:%s,age:%d\n", json_object_get_string(name_obj), json_object_get_int(age_obj));
}
}
}
json_object_put(root); //釋放json_object對(duì)象
fclose(fp); //關(guān)閉文件
return 0;
}

通過(guò)上面的代碼,我們可以讀取如下的JSON文件:

name:Tom,age:20
name:Tom,age:20
name:Tom,age:20
name:Tom,age:20
name:Tom,age:20

到這里,我們就學(xué)會(huì)了使用C語(yǔ)言創(chuàng)建和解析JSON文件的基本方法。