• 大小: 106KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-05-11
  • 语言: C/C++
  • 标签: RapidJson  

资源简介

此资源采用腾讯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\meta.h
     文件        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个文件信息

评论

共有 条评论