【发布时间】:2022-01-18 08:49:06
【问题描述】:
我有一个不工作的简单代码,我真的不知道为什么......这里是:
std::wstring CDbFilterSerializer::DeserializeFromString(const std::wstring& jsonStr)
{
std::wistringstream ss{ jsonStr };
boost::property_tree::read_json(ss, m_root);
return m_root.data();
}
这里的问题是,在调用 m_root.read_json(...) 之后 wptre 对象是空的。 return 语句是一个例子,在填充 wptree 对象后导致真正的代码,我调用 m_root.get("MyKey") 开始读取值,这抛出异常导致对象为空。
作为参数接收的json是:
{
"type":{
"className":"NumericFilterSerializerHelper: NumericType => unsigned int, DbSerializer => class CDbFilterSerializerByNumericValue",
"description":""
},
"data":{
"int_number":"45"
}
}
这里有什么问题吗?
【问题讨论】:
-
@JasonAller 让我们保持所有 boost- 标签的前缀一致。
ptree不是软件中的东西 - 如果是,它与boost-propertytree无关。我意识到ptree存在,但它应该与更频繁的boost-propertytree 合并 -
@sehe 你的意思是在评论中标记我,还是使用标记的作者?
-
@JasonAller 啊,我看不到编辑,所以我推测它一定是标签。不是这样的,很抱歉打扰你:)
标签: c++ json boost boost-propertytree