configor
v0.9.21


C ++ 11的輕重配置庫。
en | 中文
創建JSON對象:
json::value j;
j[ " integer " ] = 1 ;
j[ " float " ] = 1.5 ;
j[ " string " ] = " something " ;
j[ " boolean " ] = true ;
j[ " user " ][ " id " ] = 10 ;
j[ " user " ][ " name " ] = " Nomango " ;
json::value j2 = json::object{
{ " null " , nullptr },
{ " integer " , 1 },
{ " float " , 1.3 },
{ " boolean " , true },
{ " string " , " something " },
{ " array " , json::array{ 1 , 2 } },
{ " object " , json::object{
{ " key " , " value " },
{ " key2 " , " value2 " },
}},
};轉換與序列化:
struct User
{
std::string name;
int age;
// bind custom type to configor
CONFIGOR_BIND (json::value, User, REQUIRED(name), OPTIONAL(age))
};
// User -> json
json::value j = User{ " John " , 18 };
// json -> User
User u = json::object{{ " name " , " John " }, { " age " , 18 }};
// User -> string
std::string str = json::dump(User{ " John " , 18 });
// string -> User
User u = json::parse( " { " name " : " John " , " age " : 18} " );
// User -> stream
std::cout << json::wrap(User{ " John " , 18 });
// stream -> User
User u;
std::cin >> json::wrap (u);從Wiki中了解更多。