我有一个看起来像这样的json:
{"field":{"val1":25, "val2":48, "name1":"qqd"}}
当我对收到的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();
我始终是例外,打印的值是:1000
。为什么? count
不能像这样工作吗?
答案 0 :(得分:4)
文档说:“用给定的密钥计算直接孩子的数量。”
换句话说,您传递的字符串是一个简单的键,而不是路径。点不会得到特殊处理。
我认为让ptree拥有双容器/路径接口是它最大的问题。我对此感到非常困惑。下一个版本需要考虑的事情。