首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rapidjson findmember

Rapidjson findmember
EN

Stack Overflow用户
提问于 2015-05-05 21:14:04
回答 2查看 5.9K关注 0票数 2

我有一个这样的JSON字符串:

代码语言:javascript
复制
{"callCommand":{"command":"car","floor":"2","landing":"front"}}

现在,我想检查是否有一个名为command的名称并获取其值。有可能吗?我的代码如下,但它不能工作。

代码语言:javascript
复制
const char json[] = "{\"callCommand\":{\"command\":\"car\",\"floor\":\"2\",\"landing\":\"front\"}}";

rapidjson::Value::ConstMemberIterator itr = d.FindMember("command");

if (itr != d.MemberEnd())
    printf("command = %s\n", d["callCommand"]["command"].GetString());
EN

回答 2

Stack Overflow用户

发布于 2017-07-19 06:55:27

您在文档的顶层搜索"command“:

代码语言:javascript
复制
d.FindMember("command");

当你应该在“callCommand”中搜索它的时候:

代码语言:javascript
复制
d["callCommand"].FindMember("command");

此外,在使用FindMember进行搜索之后,应该使用迭代器,而不是再次使用operator[]进行搜索。类似于:

代码语言:javascript
复制
// assuming that "callCommand" exists
rapidjson::Value& callCommand = d["callCommand"];
rapidjson::Value::ConstMemberIterator itr = callCommand.FindMember("command");

// assuming "command" is a String value
if (itr != callCommand.MemberEnd())
    printf("command = %s\n", itr->value.GetString());
票数 3
EN

Stack Overflow用户

发布于 2015-12-15 08:22:41

您可以使用rapidjson的HasMember函数,如下所示:

代码语言:javascript
复制
Document doc;
doc.Parse(json);
doc.HasMember("command");//true or false
票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30054046

复制
相关文章

相似问题

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