所以我正在做一个任务,我需要解析几个属性到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中创建一个子树