gpt4 book ai didi

c - 使用 jsonc 库在 C 中追加 json_object_arrays

转载 作者:太空狗 更新时间:2023-10-29 16:56:33 29 4
gpt4 key购买 nike

我是 C 语言的新手。我需要附加两个使用 json-c 库创建的 json_object 数组。这是我的代码:

struct json_object *obj1,*array1,*array2,*array3;

obj1 = json_object_new_object();

array1 = json_object_new_array();
json_object_array_add(array1, json_object_new_int(1));
json_object_array_add(array1, json_object_new_int(2));
json_object_array_add(array1, json_object_new_int(3));

json_object_object_add(obj1, "array1", array1);

array2 = json_object_new_array();
json_object_array_add(array2, json_object_new_int(4));
json_object_array_add(array2, json_object_new_int(5));
json_object_array_add(array2, json_object_new_int(6));

json_object_object_add(obj1, "array2", array2);

json_object_object_add(obj1, "array3", array1+array2);

但是我得到了以下错误:

error: invalid operands to binary + (have ‘struct json_object *’ and ‘struct json_object *’) json_object_object_add(obj1, "array3", array1+array2);

这不可能吗?我需要这样的输出:

{
"array1:[1,2,3],
"array2":[4,5,6],
"array3":[1,2,3,4,5,6]
}

或者是否可以像这样向 Json 添加一个普通的 C 整数数组

int32_t smp[100]={0};

smp[0] = 1;
smp[1] = 2;
smp[2] = 3;
smp[3] = 4;
smp[4] = 5;
smp[5] = 6;

json_object_object_add(obj1, "array3", smp);

最佳答案

据我所知,json-c 中没有“内置”函数来连接两个数组,但您可以轻松创建一个:

struct json_object * json_object_array_concat (struct json_object *array1,
struct json_object *array2) {
struct json_object *array3 = json_object_new_array();
if (!array3) {
return NULL;
}
int i,
size1 = json_object_array_length(array1),
size2 = json_object_array_length(array2);
for (i = 0; i < size1; ++i) {
json_object_array_add(array3, json_object_array_get_idx(array1, i));
}
for (i = 0; i < size2; ++i) {
json_object_array_add(array3, json_object_array_get_idx(array2, i));
}
return array3;
}

然后使用它:

array3 = json_object_array_concat(array1, array2);

如果您只想将 array2 附加到 array1:

struct json_object * json_object_array_append (struct json_object *array1,
struct json_object *array2) {
int i,
size2 = json_object_array_length(array2);
for (i = 0; i < size2; ++i) {
json_object_array_add(array1, json_object_array_get_idx(array2, i));
}
return array1;
}

关于c - 使用 jsonc 库在 C 中追加 json_object_arrays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36998026/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com