1.解析json串:
str={"code":"200","msg":{"phone":"123456","name":"kjgg"}};
Json::Reader reader;
Json::Value root,msg; if (reader.parse(str, root)) // reader将Json字符串解析到root,root将包含Json里所有子元素
{
std::string code = root["code"].asString(); // 访问节点,upload_id = "UP000000"
msg = root["msg"]; //解析对象中的对象
}
json 数组:
Channels=msgg["channels"];ss
for(unsigned int i = 0; i < Channels.size(); i++)
{
m_Callid = Channels[i]["callId"].asInt();
m_TemplateId=Channels[i]["templateId"].asInt();
}
2.生成json串:
Json::Value root,msgg;
root["uid"] = Json::Value(m_Phone.c_str());
root["status"] = Json::Value(206);
root["msg"]= Json::Value(msgg);
msgg["TemplateId"]= Json::Value(m_TemplateId.c_str());
msgg["TemplateName"]= Json::Value(m_TemplateName.c_str());
msgg["Lastoperatortime"]= Json::Value(m_Lastoperatortime.c_str());
msgg["Channelnumber"]= Json::Value(m_Channelnumber.c_str());
Json::FastWriter fast_writer;
strResult = fast_writer.write(root);
生成json 数组:
Json::Value root,msgg,obj;
obj["radioId"]=Json::Value(it->m_RadioID.c_str());
obj["radioType"]=Json::Value(it->m_RadioType.c_str());
msgg.append(obj); //把obj这个类放到msgg的数组里 这句话一定要放在赋值的后面
root["uid"] = Json::Value(1);
root["status"] = Json::Value(210);
root["msg"]=msgg; //msgg的属性为msg 这句话一定要放在赋值的后面
Json::FastWriter fast_writer;
strResult = fast_writer.write(root);
3.json 对象中包含json对象的生成
msgg["radioId"]=Json::Value(it->m_RadioID.c_str());
msgg["radioType"]=Json::Value(it->m_RadioType.c_str());
root["status"] = Json::Value(210);
root["msg"]=msgg; //这句话一定要放在赋值的后面