#include "json/rapidjson.h"
#include "json/document.h"
别忘了导入头文件
>>>>>>>>>>>属性方式的json的读取>>>>>>>>>>>
String filename =
"testdata.json"
;
rapidjson::Document doc;
if
(!FileUtils::getInstance()->isFileExist(filename.getCString()))
{
log
(
"json file is not find [%s]"
, filename);
return
false
;
}
std::string data = FileUtils::getInstance()->getStringFromFile(filename.getCString());
doc.Parse<rapidjson::kParseDefaultFlags>(data.c_str());
if
(doc.HasParseError() || !doc.IsArray())
{
log
(
"get json data err!"
);
return
false
;
}
for
(unsigned
int
i = 0; i<doc.Size(); i++)
{
rapidjson::Value &v = doc[i];
String name;
int
age;
String sex;
if
(v.HasMember(
"name"
) && v.HasMember(
"age"
) && v.HasMember(
"sex"
))
{
name = v[
"name"
].GetString();
age = v[
"age"
].GetInt();
sex = v[
"sex"
].GetString();
log
(
"ID:%d,名称:%s,血量:%s"
, age, name.getCString(), sex.getCString());
}
}
return
true
;
>>>>>>>>>>>对象方式的json的读取>>>>>>>>>>>
String filename =
"testdata.json"
;
rapidjson::Document doc;
if
(!FileUtils::getInstance()->isFileExist(filename.getCString()))
{
log
(
"json file is not find [%s]"
, filename);
return
false
;
}
std::string data = FileUtils::getInstance()->getStringFromFile(filename.getCString());
doc.Parse<rapidjson::kParseDefaultFlags>(data.c_str());
if
(doc.HasParseError() || !doc.IsArray())
{
log
(
"get json data err!"
);
return
false
;
}
for
(unsigned
int
i = 1; i<doc.Size(); i++)
{
rapidjson::Value &v = doc[i];
String name;
int
age;
String sex;
int
a = 0;
name = v[a++].GetString();
age = v[a++].GetInt();
sex = v[a++].GetString();
log
(
"age:%d,name:%s,sex:%s"
,
age, name.getCString(), sex.getCString());
}
return
true
;