rapidjson怎么将数据写入到json文件

rapidjson怎么将数据写入到json文件,第1张

我来为迹歼弊您解答改闷:

#include <iostream>

#include <errno.h>

#include "fstream"

#include "CocoStudio/Json/rapidjson/stringbuffer.h"

#include "CocoStudio/Json/rapidjson/writer.h"

//---------------------------------------------------------------------------------

void CElemDataMgr::WriteUserElem(int nUserElemId)

{

m_VecUserElem.push_back(nUserElemId);

Document Doc;

Doc.SetObject();

Value vElem;

vElem.SetArray();

int nSize = m_VecUserElem.size();

for (int i = 0; i <m_VecUserElem.size(); ++i)

{

Value vElemItem;

vElemItem.SetInt(m_VecUserElem);

vElem.PushBack(vElemItem, Doc.GetAllocator());

}

Doc.AddMember("Data", vElem, Doc.GetAllocator());

StringBuffer buffer;

Writer<StringBuffer>writer(buffer);

Doc.Accept(writer);

std::string strJson(buffer.GetString(), buffer.Size());

CCLOG("BioEvolve::CElemDataMgr:%s"姿族, strJson.c_str());

std::string filepath = (CCFileUtils::sharedFileUtils()->getWritablePath() + "UserElem.json");

std::ofstream outfile;

outfile.open(filepath.c_str());

if (outfile.fail())

{

return;

}

outfile <<strJson;

outfile.close();

}。

16或20字节。

RapidJSON是一个C++的JSON解析器及生成器。它的灵感来自RapidXml

RapidJSON小而全。它同告碰时支持SAX和DOM风格的API。SAX解析尘陆器只有约500行代码

RapidJSON快。它的性能可与strlen()相比。可支持SSE2/SSE4.1加速

RapidJSON独立。它不依赖于BOOST等外部库。它甚至不依赖于STL

RapidJSON对内存友好。在大部分32/64位机器上,每个派友顷JSON值只占16或20字节(除字符串外)。它预设使用一个快速的内存分配器,令分析器可以紧凑地分配内存

RapidJSON对Unicode友好。它支持UTF-8、UTF-16、UTF-32(大端序/小端序),并内部支持这些编码的检测、校验及转码。例如,RapidJSON可以在分析一个UTF-8文件至DOM时,把当中的JSON字符串转码至UTF-16。它也支持代理对(surrogatepair)及"\\u0000"(空字符)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12293770.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存