Создать структуру JSON на основе входных переменных
У меня есть следующий файл JSON:
{
"outer_size":2,
"inner_size":{
"length_one":2,
"length_two":1
}
}
Я буду использовать эту информацию для создания нового файла JSON, размеры которого определяются outer_size
, inner_size
, length_one
а также length_two
, Структура, которую я хочу создать, имеет следующую форму
[
{
"a":[
{
"a_one":1
},
{
"a_two":2
}
]
},
{
"b":[
{
"b_one":1
}
]
}
]
Эта структура содержит две "внешние" переменные a
а также b
так как outer_size=2
,
a
содержит две "внутренние" переменные a_one
а также a_two
, в то время как b
содержит одну "внутреннюю" переменную b_one
, Это потому что inner_size
равно 2 и 1 соответственно.
Вопрос На основании данного outer_size
, inner_size
, length_one
а также length_two
Каков наилучший способ для создания структуры JSON с этими измерениями? Можно / нужно ли это делать с классами?
Пожалуйста, обратите внимание на следующее
- Значение
outer_size
всегда должно быть равно количествуlength_XX
-спецификации (в приведенном выше примере 2). Если это 3, нам нужно будет указатьlength_three
тоже. - Конкретные значения
a_one
,a_ two
и т.д... может быть что угодно для этого примера. Теперь моя главная задача - просто построить базовую структуру. - Я использую библиотеку JSON от Nlohmann для чтения исходного файла JSON.
1 ответ
Без использования какой-либо библиотеки JSON, я использовал этот код для создания кода JSON "вручную".
fputs("[\n",file);
fputs("\t{\n",file);
fputs("\t\t\"a\":[\n" ,file);
fputs("\t\t {\n",file);
fprintf(file,\t\t\t\"a_one\": \"%s\",\n",functionReturningJSONValue());
Что бы напечатать что-то подобное, что вы спросили. Я не сделал это полностью, но я уверен, что вы поймете, как это работает.
Надеюсь, это вам немного помогло.
Вы все еще можете выполнить цикл для создания определенного размера JSON и входных значений с помощью fprintf.