数组名称确定,数组内个数不定,名称不确定
{
"keicheng": {
"1": "语文",
"2": "数学",
"3": "英语"
},
"leibie": {
"359": "语文",
"369": "数学",
"370": "物理",
"371": "化学",
"372": "地理",
"373": "历史",
"374": "政治",
"375": "天文学",
"376": "高数",
"377": "线性代数",
"378": "美术",
"OTHER": "其他"
},
"class": {
"1": "初一(01)",
"2": "初一(02)",
"3": "初一(03)",
"4": "初一(04)",
"5": "初一(05)",
"6": "初一(06)",
"7": "初一(07)"
},
"dircont": "/123/5654/2222/201609/"
}
void jiexi(CStirng m_buffer)
{
Json::Reader reader;
Json::Value root;
if (reader.parse((m_buffer.GetBuffer(0)), root)) // reader将Json字符串解析到root,root将包含Json里所有子元素
{
//课程
const Json::Value datacont = root["datacont"];
Json::Value::Members member1 = datacont.getMemberNames();
for (Json::Value::Members::iterator iter = member1.begin(); iter != member1.end(); ++iter)
{
string strtmp=*iter;
CString m_key=strtmp.c_str();
CString m_value=datacont[m_key].asCString();
map_datacont.insert(map<CString, CString>::value_type (m_key, m_value));
}
//类别
const Json::Value leibiecont = root["leibie"];
Json::Value::Members member2 = leibiecont.getMemberNames();
for (Json::Value::Members::iterator iter = member2.begin(); iter != member2.end(); ++iter)
{
string strtmp=*iter;
CString m_key=strtmp.c_str();
CString m_value=datacont[m_key].asCString();
map_leibie.insert(map<CString, CString>::value_type (m_key, m_value));
}
//班级
const Json::Value classcont = root["class"];
Json::Value::Members member3 = classcont.getMemberNames();
for (Json::Value::Members::iterator iter = member3.begin(); iter != member3.end(); ++iter)
{
string strtmp=*iter;
CString m_key=strtmp.c_str();
CString m_value=datacont[m_key].asCString();
map_classcont.insert(map<CString, CString>::value_type (m_key, m_value));
}
//地址
m_saveaddress = root["dircont"].asCString();
}
}
数组内信息仍是数组,且数组内的数组个数不定
{
"datacont": [
{
"exam_id": "9",
"exam_class": "1",
"exam_course": "2",
"exam_name": "数学考试"
},
{
"exam_id": "8",
"exam_class": "1",
"exam_course": "3",
"exam_name": "英语考试"
}
],
"errcode": 3
}
void jiexi(CStirng m_shijuan)
{
Json::Reader reader_shijuan;
Json::Value root_shijuan;
if (reader_shijuan.parse((m_shijuan.GetBuffer(0)), root_shijuan)) // reader将Json字符串解析到root,root将包含Json里所有子元素
{
const Json::Value datacont = root_shijuan["datacont"];
int size = datacont.size();
int m_value=0;
for (int i=0; i<size; ++i)
{
shijuan_struct lis;
lis.exam_id=datacont[i]["exam_id"].asCString();
lis.exam_class=datacont[i]["exam_class"].asCString();
lis.exam_course=datacont[i]["exam_course"].asCString();
CString m_key=datacont[i]["exam_name"].asCString();
arr_shijuan.Add(lis);
}
}
}