问题描述
我正在尝试为JsonCpp编写包装器。我的包装器必须具有以下功能
Parse(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"
}
}
}问题
为了获得预期的结果,我必须如何实现GetObject SetString 和SetString函数?
发布于 2013-02-28 06:39:57
首先,祝你好运
我不知道你到底有什么问题,但以下是一些你需要做的事情:
GetObject返回*this,以便您可以链接GetObject调用Json::Value包含一个operator[],它可以实现您所期望的-获取相关的值,如果它不存在,则创建它。GetObject可以简单地包装它。记住用子对象更新本地mJsonObject。SetString简单地包装GetObject,然后通过字符串参数构造一个新的Json::Valuehttps://stackoverflow.com/questions/15128876
复制相似问题