有没有办法在C ++中将JSON转换为模型更容易?

时间:2018-03-21 14:35:08

标签: c++

我有一个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];

1 个答案:

答案 0 :(得分:0)

我在Nlohmann Json库中取得了巨大的成功,它允许您定义一组序列化和反序列化函数,然后从您选择的结构自由转换为json并返回。