json怎么删除数组元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json怎么删除数组元素相关的知识,希望对你有一定的参考价值。
"root":
"name":[
"a",
"b",
"c"
]
root["name"][2].clear()后还存在root["name"][2],只不过为空,怎么删除“b”,删除后变成
"root":
"name":[
"a",
"c"
]
用的是jsoncpp
传入两个参数,第一个是要删除的位置,从0开始计算,第二个参数是要删除的个数。
比如:var arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 1);
该函数的本身是返回删除的元素构成的数组。
执行这条语句后,arr则变为 ['a', 'b', 'c', 'e']
你可以看看http://www.w3school.com.cn/js/jsref_splice.asp这篇文章,或许对你有帮助。追问
那个是javascript的,在json格式数据中没有splice(),json格式的数组怎么删除,member有删除方法,但数组的没找到,只有clear方法
参考技术A 参考方法就是先把文件读出来,把不要的数组元素删了后再写回去;参考代码如下:
// std::string jsonPath // json文件路径
Json::Reader reader;
Json::Value root;
ifstream is;
is.open (jsonPath.c_str(), std::ios::binary );
if (reader.parse(is, root))
std::string code;
Json::Value value;
int size = root.size();
for (int i = 0; i < size; i++)
if(条件)
value[i] = root[i];
is.close();
Json::FastWriter writer;
std::string json_append_file = writer.write(value);
std::ofstream ofs;
ofs.open(jsonPath.c_str());
ofs << json_append_file;
ofs.close();
参考技术B 我重新做了个数组给赋值上去的,有点笨。
看看jsoncpp的API,看着似乎确实没有什么现成的方法。
如果想写个工具方法,下面两个方法或许可以实现
void resize (ArrayIndex size)
Resize the array to size elements.
void swap (Value &other)
Swap values.
用swap把要删除的元素换到数组末尾,然后resize数组长度。
注:以上思路只供参考,不一定能实现,如果你愿意尝试,结果给我说一下啊!本回答被提问者采纳
以上是关于json怎么删除数组元素的主要内容,如果未能解决你的问题,请参考以下文章