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