c语言用json格式用结构体格式写出三个数组并拼接输出结果
时间: 2023-04-03 21:02:34 浏览: 63
可以使用以下代码实现:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <json-c/json.h>
struct person {
char name[20];
int age;
};
int main() {
// 定义三个结构体数组
struct person people1[2] = {{"Tom", 20}, {"Jerry", 18}};
struct person people2[2] = {{"Alice", 22}, {"Bob", 19}};
struct person people3[2] = {{"John", 25}, {"Mary", 23}};
// 将三个数组转换为 JSON 格式
json_object *json1 = json_object_new_array();
for (int i = ; i < 2; i++) {
json_object *person = json_object_new_object();
json_object_object_add(person, "name", json_object_new_string(people1[i].name));
json_object_object_add(person, "age", json_object_new_int(people1[i].age));
json_object_array_add(json1, person);
}
json_object *json2 = json_object_new_array();
for (int i = ; i < 2; i++) {
json_object *person = json_object_new_object();
json_object_object_add(person, "name", json_object_new_string(people2[i].name));
json_object_object_add(person, "age", json_object_new_int(people2[i].age));
json_object_array_add(json2, person);
}
json_object *json3 = json_object_new_array();
for (int i = ; i < 2; i++) {
json_object *person = json_object_new_object();
json_object_object_add(person, "name", json_object_new_string(people3[i].name));
json_object_object_add(person, "age", json_object_new_int(people3[i].age));
json_object_array_add(json3, person);
}
// 拼接三个 JSON 数组
json_object *result = json_object_new_array();
json_object_array_add(result, json1);
json_object_array_add(result, json2);
json_object_array_add(result, json3);
// 输出结果
printf("%s\n", json_object_to_json_string(result));
return ;
}