Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

51 lines (42 sloc) 1.717 kb
#include <iostream>
#include <string>
#include "serialize/json.h"
/* A class that you want to serialize. */
class MyClass
int data1;
float data2;
std::string data3;
// This is only required if the members are private.
friend struct ThorsAnvil::Serialize::Json::JsonSerializeTraits<MyClass>;
MyClass(int a, float b, std::string const& c): data1(a), data2(b), data3(c) {}
friend std::ostream& operator<<(std::ostream& stream, MyClass const& value)
// Not need for serialization but we need to print out the results to show it worked.
return stream << value.data1 << " : " << value.data2 << " : " << value.data3;
* Though there is no code involved, you do need to set up
* this structure to tell the library what fields need to be serialized.
namespace ThorsAnvil { namespace Serialize { namespace Json {
struct JsonSerializeTraits<MyClass>
static JsonSerializeType const type = Map;
THORSANVIL_SERIALIZE_JsonAttribute(MyClass, data1);
THORSANVIL_SERIALIZE_JsonAttribute(MyClass, data2);
THORSANVIL_SERIALIZE_JsonAttribute(MyClass, data3);
typedef boost::mpl::vector<data1, data2, data3> SerializeInfo;
int main()
MyClass obj(56, 23.456, "Hi there");
std::cout << obj << "\n";
std::cout << ThorsAnvil::Serialize::jsonExport(obj) << "\n";
std::cin >> ThorsAnvil::Serialize::jsonImport(obj);
std::cout << obj << "\n";
Jump to Line
Something went wrong with that request. Please try again.