gpt4 book ai didi

c++ - 使用rapidJson压缩json文件后如何将输出存储在c++字符串中

转载 作者:行者123 更新时间:2023-11-28 04:44:35 27 4
gpt4 key购买 nike

如何将读取器的输出存储在 C++ 字符串中而不是在标准输出中打印

请帮我找出字符串中的存储输出。

// JSON condenser example

// This example parses JSON text from stdin with validation,
// and re-output the JSON content to stdout without whitespace.

#include "rapidjson/reader.h"
#include "rapidjson/writer.h"
#include "rapidjson/filereadstream.h"
#include "rapidjson/filewritestream.h"
#include "rapidjson/error/en.h"

using namespace rapidjson;

int main(int, char*[]) {
// Prepare JSON reader and input stream.
Reader reader;
char readBuffer[65536];
FileReadStream is(stdin, readBuffer, sizeof(readBuffer));

// Prepare JSON writer and output stream.

char writeBuffer[65536];
FileWriteStream os(stdout, writeBuffer,
sizeof(writeBuffer));
Writer<FileWriteStream> writer(os);

// JSON reader parse from the input stream and let writer generate the output.

if (!reader.Parse(is, writer)) {
fprintf(stderr, "\nError(%u): %s\n", static_cast<unsigned>(reader.GetErrorOffset()), GetParseError_En(reader.GetParseErrorCode()));
return 1;
}
//this should work something like
string str = reader.Parse(is, writer);
//no stdout from reader**
cout<< str <<endl;
//this output will contain json file without whitespaces

return 0;
}

网址:http://rapidjson.org/

最佳答案

改编自rapidJSON documentation

#include <iostream>
#include <string>

#include "rapidjson/document.h"
#include "rapidjson/stringbuffer.h"
#include "rapidjson/writer.h"
#include "rapidjson/istreamwrapper.h"
#include "rapidjson/ostreamwrapper.h"

using namespace rapidjson;

int main()
{
Document d;

// Read from cin
IStreamWrapper isw(std::cin);
d.ParseStream(isw);

// Write to a char * buffer
StringBuffer buffer;
Writer<StringBuffer> writer(buffer);
d.Accept(writer);

// Use the buffer
std::string theJSON(buffer.getString());

// Write to cout
OStreamWrapper osw(std::cout)
d.Accept(osw);
}

关于c++ - 使用rapidJson压缩json文件后如何将输出存储在c++字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49505222/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com