c++ - 使用 libJson 创建结构数组

标签 c++ json serialization jsonserializer libjson

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

{
    "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"}
            ]
        }  
    }
}

我有 Employee 和 Computer 的结构。我想创建一个结构数组。

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

最佳答案

Pakal Persist看起来非常适合您正在尝试做的事情。

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

#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);

关于c++ - 使用 libJson 创建结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21513568/

相关文章:

c++ - atlbase.h和不同版本的VC CRT

javascript - JSON:最好使用一个对象(键/值对),还是两个对象来将数据与模型分开?

java - 如果父级没有无参数构造函数,则出现序列化问题

java - javax.ws.rs.client.Entity如何将对象序列化为json?

c++ - 类模板需要模板参数列表

time_t 的 C++ 生成器错误 "Type name expected"

javascript - 检索 JSON 会引发错误 : Unexpected token :

c# - 在没有 Json.Net 的情况下反序列化 Json 字符串(在 C# 中)

c++ - 使用 STL make_heap 实现 Dijkstra 算法

json - Grails - JSON 绑定(bind)导致 JSONException