jsoncpp判断是否存在某个key问题

孔方发发 2019-02-18 02:19:36


string content= "{\"text\":{\"color\":\"1\",\"dir\":\"1\",\"txt\":\"BD12345\"},\"text2":\"\"}";
char *str = (char *)content.c_str();
Json::Reader reader;
Json::Value cmd;

//如何判断text2下是否有txt、dir、color这3个key

try {
if (reader.parse(str, cmd))
{
if (cmd["text2"]["txt"].isString()) {
}
}
}
catch (...) {
}





以上判断会出错

...全文
1342 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
宇龍_ 2019-08-17
  • 打赏
  • 举报
回复
look look
孔方发发 2019-02-18
  • 打赏
  • 举报
回复
if(cmd["text2"].isMember("txt") == true)

执行了这个判断后程序挂了

text_encode/json_cpp/json_value.cpp: 1065: const Json::Value& Json::Value::operator[](const char*) const: Assertion `type_ == nullValue || type_ == objectValue' failed.
Aborted
bravery36 2019-02-18
  • 打赏
  • 举报
回复
先判定cmd.isMember("text2")
有了在判定
cmd["text2"].isMember("txt")
孔方发发 2019-02-18
  • 打赏
  • 举报
回复
cmd.isMember("text2")这个是可以

如何判断二级key

singleChen0 2021-11-30
  • 举报
回复
@孔方发发 找到方法了吗?

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧