gpt4 book ai didi

c++ - JsonCpp 包装器

转载 作者:太空宇宙 更新时间:2023-11-04 11:58:31 25 4
gpt4 key购买 nike

问题描述

我正在尝试为 JsonCpp 编写包装器.我的包装器必须具有以下功能

  • 解析(const string& input)
  • GetString(string& output, const string name, bool optional = true)
  • SetString(const string& value, const string name, bool optional = true)
  • GetObject(const string& objectName)

我已经调用了我的包装器类 Parser

class Parser
{
private:
Json::Value mJsonObject;

public:
bool Parse(const string& input);
bool GetString(string& output, const string name, bool optional = true);
bool SetString(const string& value, const string name, bool optional = true);
Parser& GetObject(const string& objectName);
};

在我想写的代码中:

void foo()
{
Parser::GetObject("IN").GetObject("Params").SetString("Param1", "this is json");
}

通过调用它我想创建以下 JSON

{
"IN" : {
"Params" : {
"Param1":"this is json"
}
}
}

问题

我必须如何实现 GetObjectSetString 函数才能获得预期结果?

最佳答案

首先,祝你好运:)

我不确定你到底遇到了什么问题,但这里有一些你需要做的事情:

  • GetObject 返回 *this,这样您就可以链接 GetObject 调用
  • Json::Value 包含一个 operator[],它会做您期望的事情 - 获取相关值,如果它不存在则创建它。 GetObject 可以简单地包装它。请记住使用子对象更新本地 mJsonObject
  • SetString 简单地包装了 GetObject,然后通过字符串参数构造一个新的 Json::Value

关于c++ - JsonCpp 包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15128876/

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