在另一个中检索JSON对象

时间:2016-12-16 13:20:11

标签: c++ json jsoncpp

我有一个简单的JSON格式文本文件,我在“像素”数组中检索值时遇到了一些问题。 这是文件:

{ "luminaire" : 
  { "sensors": 
     { "pixel" : [2000,2001,2002] } 
  } 
}

我为此要编写的代码如下:

//After parsing success...    
Json::Value pixel = root_["luminaire"].get("sensors" , "nothing").get("pixel" , "nopixel");
int value = pixel[0].asInt();

我尝试了很多方法,但我一直收到以下错误:

terminate called after throwing an instance of 'Json::LogicError'
what():  in Json::Value::operator[](ArrayIndex): requires arrayValue

我也试过

Json::Value:ArrayIndex and root[0]

但是我得到了同样的错误 如何检索“像素”数组中的值?

2 个答案:

答案 0 :(得分:0)

你的意思是root_.get("luminaire")?毕竟,luminaire是一个关键名称,就像sensors一样。

答案 1 :(得分:0)

您需要使用root_.get("luminaire")

root_.get("luminaire").get("sensors" , "nothing").get("pixel" , "nopixel");