首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C++中使用jsoncpp解析器解析嵌套对象/数组?

如何在C++中使用jsoncpp解析器解析嵌套对象/数组?
EN

Stack Overflow用户
提问于 2012-10-27 09:11:27
回答 1查看 6.5K关注 0票数 6

例如:

代码语言:javascript
运行
AI代码解释
复制
    Json::Reader reader;
    Json::Value val;
    ifstream file("JSON/test.json");
    bool success = reader.parse(file, val, false);
    vector<string> obj = val.getMemberNames();

    for (int i = 0; i < val.size(); i++)
    {
        // switch type of value
        switch (val.get(obj.at(i), "default").type())
        {
            case stringValue:
                cout << "I'm string" << endl;
                ... need to save **membername** and **value**
                break;
            case intValue:
                cout << "I'm int"  << endl;
                ... need to save **membername** and **value**
                break;
            case nullValue:
                cout << "I'm null"  << endl;
                break;
            case arrayValue:
                 ... code to parse an array (with nested sure) ...
                 ... need to save
                break;
            case objectValue:
                ... code to parse an object (with nested sure) ...
                ... need to save 
                break;
        }
    }

示例JSON文件 (JSON/test.json):

代码语言:javascript
运行
AI代码解释
复制
{
    "layout": "fit",
    "xtype": "viewport",
    "height": 200,
    "style": {
                "backgroundColor": "46f0a8"
             },

           "items": 
           [
             {
                "title": "Management Console",
                "padding": "10 10 10 10",
                "bodyPadding": 10,
                "autoScroll": true,
                "items2": [1, 2, 3]
             }
           ]
 }

在数组items中,我们可以看到另一个称为items2的数组(嵌套的)。

对于数组,可能会经历以下情况:

代码语言:javascript
运行
AI代码解释
复制
array[Jacob, Joseph] or
array[{name: Jacob, name: Joseph}] or
array[{name: Jacob}, {name: Joseph}]

对于对象来说,它是相似的。在每个字段中,当然可以是--许多嵌套对象/数组--。如何将数据保存在C++变量中?

EN

回答 1

Stack Overflow用户

发布于 2014-11-11 18:17:36

您将希望使主解析函数具有递归性。然后使用STL类,比如向量,它允许您为数据动态分配更多的存储空间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13102308

复制
相关文章

相似问题

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