官网地址:
https://github.com/open-source-parsers/jsoncpp
一个简单测试:
void test_jsoncpp()
{
std::string jsoncppstring;
//写:
{Json::StyledWriter writer;
Json::Value jmessage;
jmessage["test_strkey1"] = "value1";
jmessage["test_strkey2"] = "value2";
jmessage["test_strkey3"] = "value3";
jmessage["test_intkey1"] = 100;
std::string strjsonCpp = writer.write(jmessage); jsoncppstring = strjsonCpp;
OutputDebugStringA(strjsonCpp.c_str());
}
//读取:
{
Json::Reader reader;
Json::Value jmessage;
if (!reader.parse(jsoncppstring,jmessage))
{
RTC_LOG(WARNING) << "Received unkNown message. " << jsoncppstring;
return;
}
std::string type_str;
std::string json_object;
rtc::GetStringFromJsonObject(jmessage,"test_strkey1",&type_str);
int type_int;
bool b = rtc::GetIntFromJsonObject(jmessage,&type_int);
if (!b)
{
//return;
}
//遍历:
Json::Value::iterator itr = jmessage.begin();
for ( int n = 0; n<jmessage.size(); n++)
{
const Json::UInt i = itr.index();
const Json::Value jvalue = itr.key();
std::string str = itr.memberName();
const bool b1 = jvalue.isBool();
const bool b2 = jvalue.isstring();
const bool b3 = jvalue.isArray();
if (b1 == true)
{
bool b = jvalue.asBool();
}
if (b2 == true)
{
std::string str = jvalue.asstring()
}
if (b3 == true)
{
}
if (i)
{
}
itr++;
}
}
//获取key value:
for ( int n = 0; n<vectorStrMember.size(); n++)
{
std::cout<< vectorStrMember.at(n) << std::endl;
}
}
转一遍文章:
《Jsoncpp的使用》
from:https://blog.csdn.net/luxiaoyu_sdc/article/details/9276705
JSON建构于两种结构: