首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ptree中的ptree增强json解析器

使用ptree中的ptree增强json解析器
EN

Stack Overflow用户
提问于 2015-09-20 07:13:49
回答 1查看 122关注 0票数 1

因此,我正在处理一项任务,我需要将几个属性解析为一个json,以便通过网络发送。下面是最终的值应该是什么样子。

代码语言:javascript
复制
{"__type":"Login:#Messages","Identity":{"sNumber":"value","Alias":"value","FirstName":"value","LastName":"value"}}

所以我的代码是

代码语言:javascript
复制
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并将其放入树中,但结果如下所示

代码语言:javascript
复制
   {"__type":"Login:#Messages","Identity":"{\"sNumber\":\"value\",\"Alias\":\"value\",\"FirstName\":\"value\",\"LastName\":\"value\"}"}

那么,如何让boost解析ptree,使其可以在ptree中执行ptree,或者不添加引号的转义,也不将Identity属性的值作为字符串?谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-10-19 05:59:29

好了,把ptree提升到json有点奇怪,但我已经知道如何生成子树了。

示例输出:{“sNumber”:“Login:#Messages”,“Identity”:“{\”sNumber\“:\”值\“}

解决方案:

代码语言:javascript
复制
boost::property_tree::ptree pt;
pt.put("__type", "Login:#Messages");
pt.put("Identity.sNumber", value);

解决方案2:

代码语言:javascript
复制
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中创建一个子树。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32674117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档