iguana
iguana copied to clipboard
json数组内含字符串和整数,怎么实现转换
struct person
{
std::string_view name;
std::vector<iguana::numeric_str> age;
};
person p1;
std::string ss = "{\"name\":\"tom\", \"age\": [20, \"30\"]}";
iguana::from_json(p1, ss);
数组内含字符串和整数,std::vectoriguana::numeric_str反序列化异常。 有什么方法能支持可能同时两种类型的转换?
array里面不同类型是不支持的,单可以用variant来表示可能的不同类型。
感谢哈。 如果部分内容完全未知,有办法获取未知内容的原始数据吗,比如获取age下的完整内容,或者定义一个raw_json类型可以获取原始内容。
struct personbase
{
std::string_view name;
};
struct person :public personbase
{
std::vector<std::variant<int,std::string_view>> age;
};
person p1;
std::string ss = "{\"name\":\"tom\", \"age\": [20, \"30\"]}";
iguana::from_json(p1, ss);
这样编译会报错
std::vector variant还没支持,单独的variant 字段可以
有办法获取某字段的原始数据吗,未来可以支持吗
暂时不支持,你可以自己根据key去查找字符串,然后substr得到你想要的原始字符串。
rfl::ExtraFieldsrfl::Generic extra_fields,这个三方库的方法,可以在iguana实现吗,挺好用的