在C ++中将数组追加到Json值

时间:2020-05-01 18:11:48

标签: c++ arrays json jsoncpp

我知道,如果我有一些整数“ a”和“ b”,则可以将它们附加到Json中的值:

Value root;
Value v = root["int"];
int a = 1;
int b = 2;
v.append(a);
v.append(b);

生成的Json文件:

"int": 
  [
    1,
    2
  ]

但是还有附加整个数组的方法吗?也许是这样的:

Value root;
Value v = root["arrays"];
int a[3] = {1,2,3};
int b[3] = {4,5,6};
v.append(a);
v.append(b);

我正在尝试使生成的Json文件看起来像这样:

"arrays": 
  [
    [1, 2, 3],
    [4, 5, 6]
  ]

但是,相反,Json只附加了指针地址值,该值读为“ true”:

"arrays": 
  [
    true,
    true
  ]

1 个答案:

答案 0 :(得分:1)

显式方法是将range-for与临时test_expect_success 'test three things' ' for i in one two three do test_something "$i" || return 1 done && test_something_else ' 一起使用。

&&

可能的帮助程序模板函数可以很好地包装它:

Value

然后这应该工作:

Value root; Value v = root["arrays"]; int a[3] = {1,2,3}; int b[3] = {4,5,6}; Value tmp; for(auto i : a) { tmp.append(i); } v.append(tmp); tmp = Value{}; // reset for(auto i : b) { tmp.append(i); } v.append(tmp) template<typename RANGE> Value rangeToValue(RANGE src) { Value result; for (const auto &value : src) { result.append(value); } return result; }