使用libjson创建一系列结构

Creating an array of structures using libJson

本文关键字:结构 一系列 创建 libjson 使用      更新时间:2023-10-16

我正在使用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"}
            ]
        }  
    }
}

我有用于员工和计算机的结构。我想创建一系列结构。

有什么想法如何使用libjson做到这一点?

pakal持续存在看起来非常适合您尝试做的事情。

由于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);