json怎么删除数组元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json怎么删除数组元素相关的知识,希望对你有一定的参考价值。


"root":
"name":[
"a",
"b",
"c"
]



root["name"][2].clear()后还存在root["name"][2],只不过为空,怎么删除“b”,删除后变成


"root":
"name":[
"a",
"c"
]



用的是jsoncpp

如果是仅仅用于删除元素的话,splice()的功能应该足够了,
传入两个参数,第一个是要删除的位置,从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怎么删除数组元素的主要内容,如果未能解决你的问题,请参考以下文章

jjs json数组型怎么删除里面指定的某个元素

js,求大神指导 怎么删除数组型json里不符合条件的元素

如何取出json数组里面的元素?

JS中彻底删除json对象组成的数组中的元素

js中怎么把值放入数组中

js怎么删除对象数组的内容?