jsoncpp的简单使用方法(不确定键名时)

1、jsoncpp下载地址:https://sourceforge.net/projects/jsoncpp/

2、使用方法

(1)、解析json字符串

可以使用Reader::parse()方法将json字符串解析成Json::Value

(2)、获得键名

Value::getMemberNames();     返回的是std::vector

3、示例(本示例为qt控制台程序)

json字符串:

jsoncpp的简单使用方法(不确定键名时)_第1张图片

代码:

 

string strMsg = "{\"student\": [{\"name\":\"张三\",\"age\" : 20}, {\"name\": \"李四\",\"age\" : 18}, {\"name\": \"Mike\",\"age\" : 25}]}";

Json::Value root;
Json::Reader reader;

/// 解析
if (!reader.parse(strMsg, root))
{
	cout << "parse json fail!" << endl;
	return 0; 
}

/// 打印信息
Json::Value student_json = root["student"];
for (int i = 0; i < student_json.size(); i++)
{
	/// 获得键名
	Json::Value::Members keys = student_json[i].getMemberNames();
	for (int j = 0; j < keys.size(); j++)
	{
		string strKey = keys[j];
		string strValue = "";

		Json::Value value = student_json[i][strKey];
		if (value.isString())
		{
			strValue = value.asString();
		}
		else if (value.isInt())
		{
			strValue = QString::number(value.asInt()).toStdString();
		}
		/// to do... 其他类型
	
		cout << "key:" << strKey << " | value:" << strValue << endl;
	}
	cout << "----------------------------------" << endl;
}

结果:

 

jsoncpp的简单使用方法(不确定键名时)_第2张图片
 

 

 

 

 

你可能感兴趣的:(jsoncpp的简单使用方法(不确定键名时))