JsonCpp

官网地址:

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;
}



return;

}



转一遍文章

Jsoncpp的使用

from:https://blog.csdn.net/luxiaoyu_sdc/article/details/9276705


JSON建构于两种结构:

  • 名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
  • 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...