Rapidjson学习笔记

来源:互联网 发布:软件开发年终总结范文 编辑:程序博客网 时间:2024/05/21 19:23

前言:

最近项目需要解析json文件,网上看到有这个库,蛮吊的样子,就来撸一发。

开始:

开始部分当然是加载json,(不加载怎么解析?)
个人看法是 Rapidjson貌似只提供了解析方式没有提供具体的加载函数!
在网上找了一下一个比较靠谱的方式。
#include <iostream> //用于把json文件加载进入内存
#include <fstream>
//库的头文件
#include "rapidjson/document.h"
#include "rapidjson/filereadstream.h"
#include "rapidjson/error/en.h"
using namespace rapidjson;

int loadJSON(std::string filename, rapidjson::Document& json_document)
{
    FILE* f = fopen(filename.c_str(), "rb");
    if (!f)
    {
//由于我是在qt上玩所以这里的打印是用的其他的打印函数
        qDebug("Couldn't open JSON file.\n");
        return 1;
    }
    char read_buffer[4096];
    rapidjson::FileReadStream reader_stream(f, read_buffer, sizeof(read_buffer));
    json_document.ParseStream(reader_stream);
    fclose(f);
    if (json_document.HasParseError())
    {
        qDebug("Error parsing JSON(offset %u): %s\n", (unsigned)json_document.GetErrorOffset(), GetParseError_En(json_document.GetParseError()));
        return 2;
    }
    return 0;
}
原创粉丝点击