资源简介
此资源采用腾讯RapidJson于vs2017C++环境解析Json文件,下载即可用,RapidJson比较其他JSON解析库更加简单轻便,运行于其他环境的话自己将代码拷贝出去,自行建立新的工程项目即可。
代码片段和文件信息
#include “JsonConfigManager.h“
#include
JsonConfigManager::JsonConfigManager()
{
ParseJsonMission();
ParseJsonMagicCircles();
}
bool JsonConfigManager::ParseJsonMission()
{
const char * pItemxmlFileName = “Mission.json“; //物品json文件名
m_json_file.open(pItemxmlFileName ifstream::in);
if (!m_json_file.is_open())
{
return false;
}
string line;
while (getline(m_json_file line))
{
m_stringFromStream.append(line + “\n“);
}
m_json_file.close();
m_Document.Parse(m_stringFromStream.c_str());
m_stringFromStream.clear();
if (m_Document.HasParseError())
{
ParseErrorCode code = m_Document.GetParseError();
psln(code);
return false;
}
//Array type
if (m_Document.IsArray())
{
for (size_t i = 0; i < m_Document.Size(); ++i)
{
m_pSMission = new SMission();
Value & v = m_Document[i];
assert(v.Isobject());
if (v.HasMember(“ID“))
{
m_pSMission->m_uMissionID = v[“ID“].GetInt();
}
if (v.HasMember(“description“))
{
m_pSMission->m_strDescription = v[“description“].GetString();
}
if (v.HasMember(“missionType“))
{
m_pSMission->m_uMissionType = v[“missionType“].GetInt();
}
if (v.HasMember(“missionTargetType“))
{
m_pSMission->m_uMissionTargetType = v[“missionTargetType“].GetInt();
}
if (v.HasMember(“targetNum“))
{
m_pSMission->m_uTargetNum = v[“targetNum“].GetInt();
}
if (v.HasMember(“prizeID“))
{
m_pSMission->m_uPrizeID = v[“prizeID“].GetInt();
}
if (v.HasMember(“prizeNum“))
{
m_pSMission->m_uPrizeNum = v[“prizeNum“].GetInt();
}
m_SMissionmap[m_pSMission->m_uMissionID] = m_pSMission;
}
}
return true;
}
bool JsonConfigManager::ParseJsonMagicCircles()
{
const char * pItemxmlFileName = “magicCircles.json“; //魔法阵信息JSON文件m_SMagicianDegreeInfo
m_json_file.open(pItemxmlFileName ifstream::in);
if (!m_json_file.is_open())
{
return false;
}
string json_line;
while (getline(m_json_file json_line))
{
m_stringFromStream.append(json_line + “\n“);
}
m_json_file.close();
m_Document.Parse(m_stringFromStream.c_str());
m_stringFromStream.clear();
if (m_Document.HasParseError())
{
ParseErrorCode code = m_Document.GetParseError();
psln(code);
return false;
}
//Array type
if (m_Document.IsArray())
{
int num = m_Document.Size();
for (size_t i = 0; i < m_Document.Size(); ++i)
{
m_pSMagicCirclesInfo = new SMagicCircles();
Value & v = m_Document[i];
assert(v.Isobject());
if (v.HasMember(“ID“))
{
m_pSMagicCirclesInfo->m_uMagicCirclesID = v[“ID“].GetInt();
}
if (v.HasMember(“name“))
{
m_pSMagicCirclesInfo->m_MagicName = v[“name“].GetString();
}
if (v.HasMember(“magicType“))
{
m_pSMagicCirclesInfo->m_uMagicCirclesType = v[“magicType“].GetInt();
}
if (v.HasMember(“subType“))
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-21 16:00 RapidJsonTest\
目录 0 2018-10-21 16:00 RapidJsonTest\RapidJsonTest\
文件 4342 2018-10-21 15:56 RapidJsonTest\RapidJsonTest\JsonConfigManager.cpp
文件 1576 2018-10-21 15:54 RapidJsonTest\RapidJsonTest\JsonConfigManager.h
文件 3179 2018-10-19 15:28 RapidJsonTest\RapidJsonTest\magicCircles.json
文件 99 2018-10-19 16:29 RapidJsonTest\RapidJsonTest\main.cpp
文件 94 2018-09-25 16:46 RapidJsonTest\RapidJsonTest\matchReward.json
文件 4350 2018-10-14 15:06 RapidJsonTest\RapidJsonTest\Mission.json
目录 0 2018-10-19 16:25 RapidJsonTest\RapidJsonTest\rapidjson\
文件 10367 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\allocators.h
文件 91730 2018-08-30 16:11 RapidJsonTest\RapidJsonTest\rapidjson\document.h
文件 9961 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\encodedstream.h
文件 23547 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\encodings.h
目录 0 2018-10-19 16:25 RapidJsonTest\RapidJsonTest\rapidjson\error\
文件 3742 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\error\en.h
文件 5850 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\error\error.h
文件 2889 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\filereadstream.h
文件 3111 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\filewritestream.h
目录 0 2018-10-19 16:25 RapidJsonTest\RapidJsonTest\rapidjson\internal\
文件 9418 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\internal\biginteger.h
文件 11606 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\internal\diyfp.h
文件 7084 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\internal\dtoa.h
文件 3008 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\internal\ieee754.h
文件 10610 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\internal\itoa.h
文件 6753 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\internal\me
文件 3650 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\internal\pow10.h
文件 6323 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\internal\stack.h
文件 1448 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\internal\strfunc.h
文件 8886 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\internal\strtod.h
文件 1322 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\internal\swap.h
文件 2633 2018-08-28 16:51 RapidJsonTest\RapidJsonTest\rapidjson\memorybuffer.h
............此处省略12个文件信息
- 上一篇:用回溯法、蛮力法解决01背包问题
- 下一篇:C++实现ATM机程序采用mysql连接
评论
共有 条评论