Я хочу создать строку JSON, содержащую переменные экземпляра моего класса.
Например,
class Example {
std::string string;
std::map<std::string, std:string> map;
std::vector<int> vector;
};
будет:
{
"string":"the-string-value",
"map": {
"key1":"val1",
"key2":"val2"
},
"vector":[1,2,3,4]
}
Я просмотрел несколько библиотек C++ для создания JSON, и все они кажутся невероятно сложными. Я бы хотел что-то похожее на JSON.stringify(object)
от Javascript. Другими словами, просто передайте ему std::map и получите строку. Карта может содержать другие карты, векторы, списки, строки, числа и bools.
Какой самый хороший способ сделать это?
Спасибо за помощь.
Edit
Я просмотрел следующие:
json spirit, jsoncpp, zoolib, JOST, CAJUN, libjson, nosjob, JsonBox, jsonme-
Которые, как я понимаю, я могу создать отдельный JSON объект, как в ответе ниже и конвертировать в JSON Я бы хотел иметь возможность хранить свои вещи в стандартных коллекциях и конвертировать.
Edit 2
Хорошо, отбросьте идею сериализации класса, поскольку, похоже, это невозможно с отсутствием отражения в C++.
Есть ли хороший способ преобразовать std::map, содержащий std:maps, std::vectors, std::lists, числа, строки и bools в JSON без необходимости менять типы данных или копировать данные в новый тип данных?
Спасибо.