根据输入变量创建JSON结构

时间:2017-05-04 15:11:05

标签: c++ json nlohmann-json

我有以下JSON文件:

{
   "outer_size":2,
   "inner_size":{
      "length_one":2,
      "length_two":1
   }
}

我将使用此信息创建一个新的JSON文件,其尺寸由outer_sizeinner_sizelength_onelength_two决定。我想要生成的结构具有以下形式

[
   {
      "a":[
         {
            "a_one":1
         },
         {
            "a_two":2
         }
      ]
   },
   {
      "b":[
         {
            "b_one":1
         }
      ]
   }
]

此结构包含两个“外部”变量ab,因为outer_size=2

a包含两个“内部”变量a_onea_two,而b包含一个“内部”变量b_one。这是因为inner_size分别为2和1。

问题基于给定的outer_sizeinner_sizelength_onelength_two,生成JSON结构的最佳方法是什么?那些尺寸?可以/应该使用吗?

请注意以下内容

  1. outer_size的值必须始终等于length_XX - 规格的数量(在上例2中)。如果它是3,我们也必须指定length_three
  2. a_onea_ two等的具体值可以是此示例的任何内容。现在我主要关心的是构建基本结构。
  3. 我正在使用Nlohmann的JSON库来读取初始的JSON文件。

1 个答案:

答案 0 :(得分:0)

不使用任何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输入值。