C++オープンソースライブラリrapidjson:簡単に使用
2828 ワード
GitHubダウンロードアドレス:rapidjson
特性参考公式説明:効率的なC++JSON解析/ジェネレータ
または:RapidJSONドキュメント
解凍されたディレクトリは次のとおりです.
使用するにはincludeフォルダをコピーするだけです.
コードディレクトリ構造のテスト:
test.cpp :
jsonfile.txt:
出力:
参照先:
C、C++ファイル全体を一度にメモリに読み込む
rapidjson未知jsonデータ解析を実現
RapidJSONドキュメント
特性参考公式説明:効率的なC++JSON解析/ジェネレータ
または:RapidJSONドキュメント
解凍されたディレクトリは次のとおりです.
rapidjson-master
|-- CHANGELOG.md
|-- CMakeLists.txt
|-- CMakeModules
|-- RapidJSON.pc.in
|-- RapidJSONConfig.cmake.in
|-- RapidJSONConfigVersion.cmake.in
|-- appveyor.yml
|-- bin
|-- contrib
|-- doc
|-- docker
|-- example
|-- include
|-- include_dirs.js
|-- library.json
|-- license.txt
|-- package.json
|-- rapidjson.autopkg
|-- readme.md
|-- readme.zh-cn.md
|-- test
|-- thirdparty
`-- travis-doxygen.sh
使用するにはincludeフォルダをコピーするだけです.
include
`-- rapidjson
|-- allocators.h
|-- cursorstreamwrapper.h
|-- document.h
|-- encodedstream.h
|-- encodings.h
|-- error
|-- filereadstream.h
|-- filewritestream.h
|-- fwd.h
|-- internal
|-- istreamwrapper.h
|-- memorybuffer.h
|-- memorystream.h
|-- msinttypes
|-- ostreamwrapper.h
|-- pointer.h
|-- prettywriter.h
|-- rapidjson.h
|-- reader.h
|-- schema.h
|-- stream.h
|-- stringbuffer.h
`-- writer.h
コードディレクトリ構造のテスト:
|-- jsonfile.txt
|-- makefile
|-- rapidjson
`-- test.cpp
test.cpp :
#include "rapidjson/document.h"
#include
#include
using namespace rapidjson;
using namespace std;
int main()
{
char*buffer = NULL;
//
filebuf *pbuf;
ifstream filestr;
long size;
// ,
filestr.open ("jsonfile.txt", ios::binary);
if (!filestr)
return -1;
// filestr buffer
pbuf=filestr.rdbuf();
// buffer
size=pbuf->pubseekoff (0,ios::end,ios::in);
pbuf->pubseekpos (0,ios::in);
//
buffer=new char[size];
//
pbuf->sgetn (buffer,size);
filestr.close();
// json
Document document;
document.Parse(buffer);
if (document.HasParseError())
{
return -1;
}
assert(document.IsObject());
for (rapidjson::Value::ConstMemberIterator iter = document.MemberBegin(); iter != document.MemberEnd(); iter++)
{
if (iter->name.IsString())
{
switch(iter->value.GetType())
{
case 0:
cout << "null" <value.IsNull() <
jsonfile.txt:
{
"hello": "world",
"t": true ,
"f": false,
"n": null,
"i": 123,
"pi": 3.1416,
"a": [1, 2, 3, 4]
}
出力:
string
true
false
null
num
num
array
参照先:
C、C++ファイル全体を一度にメモリに読み込む
rapidjson未知jsonデータ解析を実現
RapidJSONドキュメント