Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用jsoncpp创建字符串的JSON数组_C++_Arrays_Json_Jsoncpp - Fatal编程技术网

C++ 使用jsoncpp创建字符串的JSON数组

C++ 使用jsoncpp创建字符串的JSON数组,c++,arrays,json,jsoncpp,C++,Arrays,Json,Jsoncpp,在将新文件写入磁盘时,我需要更新一个索引(JSON格式),因为文件是分类的,所以我使用的对象具有这种结构: { "type_1" : [ "file_1", "file_2" ], "type_2" : [ "file_3", "file_4" ] } 我认为这对于jsoncpp来说是一项简单的任务,但我可能遗漏了一些东西 我的代码(简化)如下: 尝试调试我的代码和jsoncpp调用,似乎一切正常,但数组总是空的。问题出现在这里: elements = root[type]; 因为调用此Js

在将新文件写入磁盘时,我需要更新一个索引(JSON格式),因为文件是分类的,所以我使用的对象具有这种结构:

{ "type_1" : [ "file_1", "file_2" ], "type_2" : [ "file_3", "file_4" ] }
我认为这对于jsoncpp来说是一项简单的任务,但我可能遗漏了一些东西

我的代码(简化)如下:


尝试调试我的代码和jsoncpp调用,似乎一切正常,但数组总是空的。

问题出现在这里:

elements = root[type];
因为调用此JsonCpp API时,您正在创建
root[type]
副本:

Value &Value::operator[]( const std::string &key )
因此根本不修改
根目录
文档。在您的情况下,避免此问题的最简单方法是不使用
元素
变量:

root[type].append(name.c_str());

或者只需将
elements
作为指针:
Value*element;如果(…)元素=&root[type]
Value &Value::operator[]( const std::string &key )
root[type].append(name.c_str());