我有一个JSON字符串,我需要将其映射到C ++中的Model。我目前的做法是定义变量的数据类型,并通过密钥获取JSON的值,然后逐个分配给模型。这是代码:
auto code = BaseModel::intValue(data, "code");
int BaseModel::intValue( const std::unordered_map<std::string, Value>& value, const std::string& key )
{
return (value.find( key ) != value.end() && BaseModel::isBasicType(value.at(key))) ? value.at(key).asInt() : 0;
}
有没有简单的方法将JSON转换为模型?也许我只需要使用模型的数据类型定义头文件,然后它可以帮助我将JSON转换为模型对象。而不是创建模型对象,从JSON逐个为模型对象赋值。我知道Objective-C有一种方法:
// JSON:
{
"uid":123456,
"name":"Harry",
"created":"1965-07-31T00:00:00+0000"
}
// Model:
@interface User : NSObject
@property UInt64 uid;
@property NSString *name;
@property NSDate *created;
@end
@implementation User
@end
// Convert json to model:
User *user = [User yy_modelWithJSON:json];
// Convert model to json:
NSDictionary *json = [user yy_modelToJSONObject];