Как я могу добавить много строк json в один JsonArray?

Мне нужен один JSonArray в качестве вывода. Я хочу, чтобы в этот массив были добавлены строки json. Я использую json-glib и C ++ для этого. Я чертовски много искал в Google, но все тщетно. Я хочу что-то вроде этого:

[{«id»: «i_am_id», «client»: «i_am_C», «tag»: [{«one»: «value», «two»: «value»}]}, {}, {}]

«tag» — это jsonarray строк как написано. Я хочу jsonarray многих json, как это, в котором есть поля, такие как string, int, jsonarrays. Пожалуйста, помогите мне с этим.

1

Решение

Я не использую json-glib,
Я не мог проверить этот код,
и я пропустил часть, чтобы выпустить builders,
но я надеюсь, что это поможет вам:

// build an object as an element of 'tag' array.
// {"one": "value", "two": "value"}
JsonNode * objectAsElementOfTag;
{
JsonBuilder *builder = json_builder_new ();
json_builder_begin_object (builder);

json_builder_set_member_name (builder, "one");
json_builder_add_string_value (builder, "value");

json_builder_set_member_name (builder, "two");
json_builder_add_string_value (builder, "value");

json_builder_end_object (builder);
objectAsElementOfTag = json_builder_get_root (builder);
}

// build 'tag' array.
// [{"one": "value", "two": "value"}]
JsonNode * tagArray;
{
JsonBuilder *builder = json_builder_new ();
json_builder_begin_array (builder);

json_builder_add_value (builder, objectAsElementOfTag);

json_builder_end_array (builder);
tagArray = json_builder_get_root (builder);
}

// build the first element.
// {"id": "i_am_id", "client":"i_am_C" ,"tag": [{"one": "value", "two": "value"}] }
JsonNode * firstElement;
{
JsonBuilder *builder = json_builder_new ();
json_builder_begin_object (builder);

json_builder_set_member_name (builder, "id");
json_builder_add_string_value (builder, "i_am_id");

json_builder_set_member_name (builder, "client");
json_builder_add_string_value (builder, "i_am_C");

json_builder_set_member_name (builder, "tag");
json_builder_add_value (builder, tagArray);

json_builder_end_object (builder);
firstElement = json_builder_get_root (builder);
}

// build the second element(an empty object).
// {}
JsonNode * secondElement;
{
JsonBuilder *builder = json_builder_new ();
json_builder_begin_object (builder);

json_builder_end_object (builder);
secondElement = json_builder_get_root (builder);
}

// build the third element(an empty object).
// {}
JsonNode * thirdElement;
{
JsonBuilder *builder = json_builder_new ();
json_builder_begin_object (builder);

json_builder_end_object (builder);
thirdElement = json_builder_get_root (builder);
}

// finally, build the root array which may be what you want.
// [ {"id": "i_am_id", "client":"i_am_C" ,"tag": [{"one": "value", "two": "value"}] } ,{} ,{} ]
JsonNode * rootArray;
{
JsonBuilder *builder = json_builder_new ();
json_builder_begin_array (builder);

json_builder_add_value (builder, firstElement);
json_builder_add_value (builder, secondElement);
json_builder_add_value (builder, thirdElement);

json_builder_end_array (builder);
rootArray = json_builder_get_root (builder);
}
0

Другие решения


По вопросам рекламы [email protected]