密码 hTTp://WWW.MuKeDaBa.COM/forum-41-1.html
JavaScript Object Notation
是一种传递对象的语法 对象可以是name/vvalue对,数组和其他对象
{
"skillz": {
"web": [
{
"name": "html",
"years": "5"
},
{
"name": "css",
"years": "3"
}
],
"database": [
{
"name": "sql",
"years": "7"
}
]
}
}
//这个里面skillz是最大的一个对象 这个对象包含两个对象web和database
//web中含有一个数组 数组中含有两个对象 每个对象里面有两个键值对
//database中含有一个数组 数组里面只有一个对象 这个对象有两个键值对
"name":"兮动人",
"age":22,
"fruits":["apple","pear","grape"]
"{
"STUDENT":
[
{
"STUDENT":"F",
"When":1611893741,
"Code":-1,
"Msg":"18",
"Class":"3-1"
}
],
"DETAIL":
[
{
"port":8888,
"timezone":8,
"NAME":"ZHANG",
"MATH":70,
"ENGLISH":65,
"CHINESE":"123",
"AGE":19,
"reconfigtimes":0
}
]
,"id":1
}"
数组(Array)用方括号(“[]”)表示。
对象(0bject)用大括号(“{}”)表示。可以看作一个容器
名称/值对(name/value)组合成数组和对象。
名称(name)置于双引号中,值(value)有字符串、数值、布尔值、null、对象和数组。
并列的数据之间用逗号(“,”)分隔 名称和值也用逗号(“,”)隔开
是命名空间中的一个类
内部存在一个
typedef std::map<CZString, Value> ObjectValues;
是命名空间中的一个类
将符合JSON语法规则的字符串转化为对象的过程
eval()函数也可以解析 没去了解
CString localParserJson = _T(
"{
"skillz": {
"web": [
{
"name": "html",
"years": "5"
},
{
"name": "css",
"years": "3"
}
],
"database": [
{
"name": "sql",
"years": "7"
}
]
}
}"
)
Json::Reader reader;
Json::Value root;
reader.parse(CMM_T2UTF(localParserJson), root);
Json::Value jsonItem = root["skillz"];//root["skillz"] 等价于 root[0]
Json::Value jsonItem1 = jsonItem["web"];
CString temp = jsonItem1["name"].asString().c_str();
for(int i = 0;i<jsonItem1.size();i++)
{
CString temp = jsonItem1[i].asString().c_str();
}