a513155803
a513155803
2019-04-11 08:38
采纳率: 66.7%
浏览 436

C++rapidjson如何让两个不同的函数用同一个Json格式

这个是Json.cpp文件

void Json()
{
    ver.StartObject();
    ver.Key("Time");
    ver.Int64(Time);
    ver.Key("Results");
    ver.String("Ture");
    ver.EndObject();
    return;
}

这个是main.cpp文件

int main()
{
    ver.StartObject();
    ver.Key("Name");
    ver.String("Krinz");
    ver.Key("Gender");
    ver.String("男");
    ver.Key("Details");
    ver.StartArray();
    thread th1(Json);
    ver.EndArray();
    ver.EndObject();
    string sys = buffer.GetString();

    cout << sys << endl;

    system("pause");
    return 0;
}

这个是include.h文件

#ifndef CIRCLE_H
#define CIRCLE_H

#include <stdio.h>
#include <string>
#include <iostream>
#include <stdlib.h>
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"

using std::cout;
using std::endl;
using std::string;
using namespace rapidjson;

StringBuffer buffer;
Writer<StringBuffer> ver(buffer);

#endif // !CIRCLE_H

我想将这两个函数使用同一个结构,但这样好像失败了
是还有什么办法将他们拼接起来吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • a513155803
    a513155803 2019-04-12 20:19
    已采纳

    将不同函数所有的值全部存储到全局变量中,然后在主函数结尾处统一拼接

    点赞 评论
  • caozhy
    从.h文件里去掉Writer<StringBuffer> ver(buffer);
    放在主程序里
    Json.cpp里面写extern Writer<StringBuffer> ver(buffer);
    
    点赞 评论

相关推荐