如何解决在RapidJSON中添加setdistinct元素
我想创建以下Json对象
{
"name":"abc","property1"=[2010,2013,2015],"property2"=["str1,"str2",str3"],"property3"=[true,false]
}
property1,property2,property3本质上是一个数组,但是具有不同的元素。 目前,我正在通过以下方式进行创建:
document.AddMember("property1",Value(kArrayType),allocator);
document.AddMember("property2",allocator);
document.AddMember("property3",allocator);
然后,我遍历列表并将对象中的值推送通过:
for (auto& iter: object_info_list) {
document["property1"].PushBack(iter->property1,allocator); //int value
document["property2"].PushBack(iter->property2,allocator); // string value
document["property3"].PushBack(iter->property3,allocator); // bool value
}
但是上面的语句也会推送所有值(重复项)。有没有一种方法可以只添加不同的值(如c ++中设置的值)
提前谢谢
解决方法
JSON没有很多数据类型。您将需要在要复制的C ++数据结构中进行重复数据删除。
例如
std::set<int> property1;
std::set<std::string> property2;
std::set<bool> property3;
for (auto& iter: object_info_list) {
property1.insert(iter->property1);
property2.insert(iter->property2);
property3.insert(iter->property3);
}
for (auto val : property1) {
document["property1"].PushBack(val,allocator);
}
for (auto val : property2) {
document["property2"].PushBack(val,allocator);
}
for (auto val : property3) {
document["property3"].PushBack(val,allocator);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。