如何从 json 字典自动创建模型 类(NSObject)?
How to create Model Classes(NSObject) automatically from json dictionary?
有什么方法可以创建字典或 json 响应的模型 类(包装器)?因为在我的应用程序中有很多网络服务,所有 WS 都包含大数据。如果我一直在一个接一个地创建,那么通过检查空数据和编码解码对象来创建 NSObject Class 会花费很多时间。请建议我手动创建所有 NSObject 是正确的方法吗?我不想解析直接字典。
谢谢
为此,您可以使用 BaseModel、ObjectMapper 或 EVReflection 开源项目等模块。它们都是您可以在项目中使用的开源模块。
你看过NSKeyValueCoding
了吗?它有几种您可能会觉得有用的方法,包括以下方法,它可以根据对象的字典表示设置对象的所有值。
[object setValuesForKeysWithDictionary:dictionary];
假设您能够以某种方式从字典表示中确定对象的class,您可以使用它;此外,您可以使用 dictionaryWithValuesForKeys:
轻松地将对象转换为字典
最后我得到了非常简单和快速的模型 Class 生成器工具,用于 iOS 和 Android 两者。只需复制并粘贴您的回复,然后从工具中获取模型 Class。
- 从 AppStore (Mac AppStore) 下载 JSON 加速器。
从浏览器复制您的 JSON 回复。(回复必须 JSON 验证)。
粘贴到 Json 加速器 >> 单击生成并使用您的模型名称保存。
- Select 输出语言并添加base Class name.(Class 不需要前缀)
- 见下面生成的模型Classes和子模型Classe (自动生成所有JSON对象Classes)
像这样使用>>>
例如,您的 JSON 资源字典是
{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}
制作员工数组,然后使用创建的模型创建对象 Classes 如下代码,您必须使用 For loop
或 enumerateObjectsUsingBlock
中的任何一个来创建和然后添加可变数组。
NSArray *arrTemp = [NSArray arrayWithArray:yourResponceDict[@"employees"]];
NSMutableArray *myMutableArray = [NSMutableArray 数组];
[arrTemp enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
Employee *aObj = [Employee modelObjectWithDictionary:obj];
[myMutableArray addObject:aObj];
}];
此工具非常简单且节省时间,可用于创建 Json 对象 Classes,用于在开发中的任何地方解析数据。
有什么方法可以创建字典或 json 响应的模型 类(包装器)?因为在我的应用程序中有很多网络服务,所有 WS 都包含大数据。如果我一直在一个接一个地创建,那么通过检查空数据和编码解码对象来创建 NSObject Class 会花费很多时间。请建议我手动创建所有 NSObject 是正确的方法吗?我不想解析直接字典。 谢谢
为此,您可以使用 BaseModel、ObjectMapper 或 EVReflection 开源项目等模块。它们都是您可以在项目中使用的开源模块。
你看过NSKeyValueCoding
了吗?它有几种您可能会觉得有用的方法,包括以下方法,它可以根据对象的字典表示设置对象的所有值。
[object setValuesForKeysWithDictionary:dictionary];
假设您能够以某种方式从字典表示中确定对象的class,您可以使用它;此外,您可以使用 dictionaryWithValuesForKeys:
最后我得到了非常简单和快速的模型 Class 生成器工具,用于 iOS 和 Android 两者。只需复制并粘贴您的回复,然后从工具中获取模型 Class。
- 从 AppStore (Mac AppStore) 下载 JSON 加速器。
从浏览器复制您的 JSON 回复。(回复必须 JSON 验证)。
粘贴到 Json 加速器 >> 单击生成并使用您的模型名称保存。
- Select 输出语言并添加base Class name.(Class 不需要前缀)
- 见下面生成的模型Classes和子模型Classe (自动生成所有JSON对象Classes)
像这样使用>>>
例如,您的 JSON 资源字典是
{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}
制作员工数组,然后使用创建的模型创建对象 Classes 如下代码,您必须使用
For loop
或enumerateObjectsUsingBlock
中的任何一个来创建和然后添加可变数组。NSArray *arrTemp = [NSArray arrayWithArray:yourResponceDict[@"employees"]]; NSMutableArray *myMutableArray = [NSMutableArray 数组];
[arrTemp enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { Employee *aObj = [Employee modelObjectWithDictionary:obj]; [myMutableArray addObject:aObj]; }];
此工具非常简单且节省时间,可用于创建 Json 对象 Classes,用于在开发中的任何地方解析数据。