Создание массива структур с использованием 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"}
]
}
}
}

У меня есть структуры для сотрудников и компьютеров. Я хотел бы создать массив структур.

Есть идеи, как это можно сделать с помощью libJson?

0

Решение

Пакал Персист выглядит идеально подходит для того, что вы пытаетесь сделать.

поскольку в 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);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]