首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用libJson创建结构数组

使用libJson创建结构数组
EN

Stack Overflow用户
提问于 2014-02-02 17:15:57
回答 1查看 226关注 0票数 0

我使用libJson (C++库)解析JSON文件。我的JSON文件如下所示。

代码语言:javascript
复制
{
    "Comany": 
    {
        "name": "Some Company",
        "Resources": {
            "employees": [
                {"name": "John", "id": "23432"}, 
                {"name": "Alex", "id": "32432"}
            ], 
            "Computers": [
                {"IPAddress": "192.168.1.3", "CPU": "IntelCorei5"},
                {"IPAddress": "192.168.1.4", "CPU": "IntelCorei3"}
            ]
        }  
    }
}

我有员工和电脑的结构。我想要建立一系列的结构。

有什么想法可以用libJson来完成吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-20 01:03:08

帕卡尔坚持看起来非常适合你想要做的事情。

由于c++中没有反射,所以您需要做的唯一额外的事情就是添加一个成员函数。

代码语言:javascript
复制
#include "JsonReader.h"

struct Computer
{
    std::string IPAddress;
    std::string CPU;

    void persist(Archive* archive)
    {
        a->value("IPAddress",IPAddress);
        a->value("CPU",CPU);
    }
}   

struct Employee
{
    std::string name;
    int id;

    void persist(Archive* archive)
    {
        a->value("name",name);
        a->value("id",id);
    }
}


struct Resources
{
    std::vector<Employee> employees;
    std::vector<Computer*> Computers;

    void persist(Archive* archive)
    {
        archive->value("employees","employee",employees);
        archive->value("Computers","computer",Computers);
    }
}

struct Company
{
    std::string name;
    Resources resources;

    void persist(Archive* a)
    {
        a->value("name",name);
        a->value("Resources",resources);
    }
}



Company company;

JsonReader reader;
reader.read("company.json","Company",company);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21513568

复制
相关文章

相似问题

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