【C++】JSON数据解析——jsoncpp的使用(下)

"status": {
     "code": "成功/错误代码",
     "msg": "错误信息"
},
"data": {
     "timeStampNum": "当前服务器时间,格式YYYYMMDDHHMMSS",
     "trafficAddress": "实时交通URL"
     "isHasTraffic": "实时交通可用状态,1为可用,0为不可用"
     "terminalVer":"终端版本号"
     "deviceStatus":"设备可用状态,1为可用,0为不可用"
     "trafficVer":"实时交通版本,用于校验是否需要更新实时交通URL"
}

上面这个是我以前项目中使用过的json字符串格式。现在我们试着使用jsoncpp来解析他,来获得当前的deviceStatus是否可用。

先来看一段示例代码

int CJSONParser::DeviceStatus( const char* pData )
{
	if(pData == NULL || strlen(pData) <= 0)
	{
		return 0;
	}
        //创建reader实例,用来读取json字符串
	Json::Reader reader;
	Json::Value root;

	bool bRead = reader.parse(pData,root);
	if (!bRead)
	{
		return 0;
	}
        //value就是第一层大括号里面的数据
	Json::Value vData = root["data"];
	
	int nDeviceStatus = vData["deviceStatus"].asInt();

	return nDeviceStatus;
}

这样,我们想要的deviceStatus的值,就可以读取到了。

读者可以自己创建一个工程试试读取一些json字符串的内容,这样就会更加熟悉jsoncpp的用法了。

 

你可能感兴趣的:(C/C++)