Boost json解析器与ptree中的ptree



所以我正在做一个任务,我需要解析几个属性到json通过网络发送。下面是最终的值。

{"__type":"Login:#Messages","Identity":{"sNumber":"value","Alias":"value","FirstName":"value","LastName":"value"}}

我的代码是

boost::property_tree::ptree pt;
pt.put("__type", "Login:#Messages");
pt.put("Identity", myPlayer.Encode());

myplayer是一个包含snumber, alias, firstname, lastname的类。编码函数返回一个ptree,但当我去write_json它似乎不知道如何处理ptree中的ptree。我尝试将myPlayer解析为json并将其放入树中但它给出了这个

   {"__type":"Login:#Messages","Identity":"{"sNumber":"value","Alias":"value","FirstName":"value","LastName":"value"}"}

那么我如何得到提升来解析一个ptree,这样它就可以在ptree中做一个ptree,或者不添加引号的转义,也不把身份属性的值作为一个字符串?由于

将ptree升格为json有点奇怪但我知道如何创建子树

示例输出:{"__type":"登录:#消息","身份":"{"sNumber ","价值"}}

解决方案:

boost::property_tree::ptree pt;
pt.put("__type", "Login:#Messages");
pt.put("Identity.sNumber", value);

解决方案2:

boost::property_tree::ptree pt;
boost::property_tree::ptree subtree;
subtree.put("sNumber", value);
pt.put("__type", "Login:#Messages");
pt.put_child("Identity", subtree);

这两个示例都将在ptree中创建一个子树

相关内容

  • 没有找到相关文章

最新更新