首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JsonCpp包装器

JsonCpp包装器
EN

Stack Overflow用户
提问于 2013-02-28 06:25:05
回答 1查看 1K关注 0票数 1

问题描述

我正在尝试为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

代码语言:javascript
复制
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);
};

在代码中,我想写以下内容:

代码语言:javascript
复制
void foo()
{
    Parser::GetObject("IN").GetObject("Params").SetString("Param1", "this is json");
}

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

代码语言:javascript
复制
{
    "IN" : {
        "Params" : {
            "Param1":"this is json"
        }
    }
}

问题

为了获得预期的结果,我必须如何实现GetObject SetString SetString函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-28 06:39:57

首先,祝你好运

我不知道你到底有什么问题,但以下是一些你需要做的事情:

  • GetObject返回*this,以便您可以链接GetObject调用
  • Json::Value包含一个operator[],它可以实现您所期望的-获取相关的值,如果它不存在,则创建它。GetObject可以简单地包装它。记住用子对象更新本地mJsonObject
  • SetString简单地包装GetObject,然后通过字符串参数构造一个新的Json::Value
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15128876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档