因此,我正在处理一项任务,我需要将几个属性解析为一个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的类。encode函数返回一个ptree,但是当我转到write_json时,它似乎不知道如何在ptree中处理ptree。我尝试将myPlayer解析为json并将其放入树中,但结果如下所示
{"__type":"Login:#Messages","Identity":"{\"sNumber\":\"value\",\"Alias\":\"value\",\"FirstName\":\"value\",\"LastName\":\"value\"}"}那么,如何让boost解析ptree,使其可以在ptree中执行ptree,或者不添加引号的转义,也不将Identity属性的值作为字符串?谢谢
发布于 2015-10-19 05:59:29
好了,把ptree提升到json有点奇怪,但我已经知道如何生成子树了。
示例输出:{“sNumber”:“Login:#Messages”,“Identity”:“{\”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中创建一个子树。
https://stackoverflow.com/questions/32674117
复制相似问题