sop*_*sop 3 c++ json boost boost-propertytree
我有一个看起来像这样的 json:
{"field":{"val1":25, "val2":48, "name1":"qqd"}}
Run Code Online (Sandbox Code Playgroud)
当我对收到的 json 进行验证时,它具有如下特定字段:
std::size_t fcnt = pt.count("field");
std::size_t val1cnt = pt.count("field.val1");
std::size_t val2cnt = pt.count("field.val2");
std::size_t nm1cnt = pt.count("field.name1");
std::cout << fcnt << val1cnt << val2cnt << nm1cnt << std::endl; // this is just for testing
if (fcnt != 1 || val1cnt != 1 || val2cnt != 1 || nm1cnt !=1)
throw BadJSONFormatException();
Run Code Online (Sandbox Code Playgroud)
我总是得到异常,打印的值是:1000. 为什么?count不是这样工作的吗?
文档说:“用给定的键计算直接孩子的数量。”
换句话说,您传递的字符串是一个简单的键,而不是路径。点不会得到特殊处理。
我认为让 ptree 拥有双容器/路径接口是它遇到的最大问题。我看到了很多困惑。下一个版本需要考虑的事情。
| 归档时间: |
|
| 查看次数: |
3930 次 |
| 最近记录: |