a simple json like container, implemented as std::variant.
using any_int_type = std::int64_t;
using any_key_type = std::variant<std::string, any_int_type>;
class any_value_type;
using any_vector = std::vector<any_value_type>;
using any_int_map = std::unordered_map<any_int_type, any_value_type>;
using any_str_map = std::unordered_map<std::string, any_value_type>;
class any_value_type: public std::variant<any_int_type, double, bool, std::string, any_vector, any_int_map, any_str_map>
cpp17
encode
convert any primitive type and std container to jsondecode
decode the json to specific primitive type or std containerany_value
a json like container, but support int as key.