Я хотел бы создать строку 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, и все они кажутся невероятно сложными. Я хотел бы что-то похожее на Javascript JSON.stringify(object)
. Другими словами, просто передайте ему std :: map и получите строку. Карта может содержать другие карты, векторы, списки, строки, числа и bools.
Какой самый лучший способ сделать это?
Спасибо за вашу помощь.
Редактировать
Я изучил следующее:
json spirit, jsoncpp, zoolib, JOST, CAJUN, libjson, nosjob, JsonBox, jsonme -
Как я понимаю, я могу создать отдельный объект JSON, как показано в ответе ниже, и преобразовать в JSON. Я хотел бы иметь возможность хранить свои вещи в стандартных коллекциях и конвертировать.
Редактировать 2
Ладно, отбросьте идею сериализации класса, так как кажется, что это невозможно без C ++.
Есть ли хороший способ преобразовать std :: map, содержащий std: maps, std :: vectors, std :: lists, numbers, strings и bools, в JSON без необходимости изменения типов данных или копирования данных в новый тип данных
Спасибо.