首页 > 代码库 > 将jsonModel转化为文件

将jsonModel转化为文件

将jsonModel转化为文件

这个类是我自己写着用的,用于将字典文件直接转换成Model的文件,省去你写无数Model中属性的代码:

TransformDictionary.h 与 TransformDictionary.m

////  TransformDictionary.h//  Dic////  Copyright (c) 2014年 Y.X. All rights reserved.//#import <Foundation/Foundation.h>@interface TransformDictionary : NSObject+ (void)withDictionary:(NSDictionary *)dictionary fileName:(NSString *)name;@end
////  TransformDictionary.m//  Dic////  Copyright (c) 2014年 Y.X. All rights reserved.//#import "TransformDictionary.h"@implementation TransformDictionary+ (void)withDictionary:(NSDictionary *)dictionary fileName:(NSString *)name{    NSDictionary *dic         = dictionary;    NSString *shortName       = name;    NSString *fullHeadName    = [name stringByAppendingString:@".h"];    NSString *fullContentName = [name stringByAppendingString:@".m"];        // .h 文件头部信息    __block NSString *headFileString =     [NSString stringWithFormat:@"//\n//  %@\n//\n//  Copyright (c) 2014年 Y.X. All rights reserved.\n//\n\n#import <Foundation/Foundation.h>\n\n@interface %@ : NSObject\n\n\n", fullHeadName, shortName];        // .h 文件中间信息    [dic enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {        if ([key isKindOfClass:[NSString class]]) {            if ([dic[key] isKindOfClass:[NSString class]]) {                headFileString = [headFileString stringByAppendingString:[NSString stringWithFormat:@"@property (nonatomic, strong) NSString       *%@;\n", key]];            } else if ([dic[key] isKindOfClass:[NSNumber class]]) {                headFileString = [headFileString stringByAppendingString:[NSString stringWithFormat:@"@property (nonatomic, strong) NSNumber       *%@;\n", key]];            } else if ([dic[key] isKindOfClass:[NSDictionary class]]) {                headFileString = [headFileString stringByAppendingString:[NSString stringWithFormat:@"@property (nonatomic, strong) NSDictionary   *%@;\n", key]];            } else if ([dic[key] isKindOfClass:[NSArray class]]) {                headFileString = [headFileString stringByAppendingString:[NSString stringWithFormat:@"@property (nonatomic, strong) NSArray        *%@;\n", key]];            } else {                NSLog(@"%@   %@",[dic[key] class], key);                headFileString = [headFileString stringByAppendingString:[NSString stringWithFormat:@"//@property (nonatomic, strong) %@     *%@;\n", [dic[key] class], key]];            }        }    }];        // - (void)setValue:(id)value forUndefinedKey:(NSString *)key    headFileString = [headFileString stringByAppendingString:@"\n\n- (void)setValue:(id)value forUndefinedKey:(NSString *)key;\n"];        // - (instancetype)initWithDictionary:(NSDictionary *)dictionary    headFileString = [headFileString stringByAppendingString:@"- (instancetype)initWithDictionary:(NSDictionary *)dictionary;\n"];            // .h 文件尾部信息    headFileString = [headFileString stringByAppendingString:@"\n\n@end\n\n"];        // .h 文件路径    NSString *headFileStringPath =     [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"/Documents/%@", fullHeadName]];        // 写文件    [headFileString writeToFile:headFileStringPath                     atomically:YES                       encoding:NSUTF8StringEncoding                          error:nil];            // ================================================================================= //            // .m 文件    NSString *contentFileString =     [NSString stringWithFormat:@"//\n//  %@\n//\n//  Copyright (c) 2014年 Y.X. All rights reserved.\n//\n\n#import \"%@\"\n\n@implementation %@\n\n", fullContentName, fullHeadName, shortName];            // .m 文件中间部分    // - (void)setValue:(id)value forUndefinedKey:(NSString *)key    contentFileString = [contentFileString stringByAppendingString:@"- (void)setValue:(id)value forUndefinedKey:(NSString *)key\n{\n//    if([key isEqualToString:@\"id\"]) {\n//        self.productID = value;\n//    }\n}\n"];        // - (void)setValue:(id)value forKey:(NSString *)key    contentFileString = [contentFileString stringByAppendingString:@"\n- (void)setValue:(id)value forKey:(NSString *)key\n{\n    if ([value isKindOfClass:[NSNull class]]) {\n        return;\n    }\n\n    [super setValue:value forKey:key];\n}"];        // - (instancetype)initWithDictionary:(NSDictionary *)dictionary    contentFileString = [contentFileString stringByAppendingString:@"\n- (instancetype)initWithDictionary:(NSDictionary *)dictionary\n{\n    self = [super init];\n    if (self)\n    {\n        if ([dictionary isKindOfClass:[NSDictionary class]])\n        {\n            [self setValuesForKeysWithDictionary:dictionary];\n        }\n    }\n\n    return self;\n}\n"];        // .m 文件尾部信息    contentFileString = [contentFileString stringByAppendingString:@"\n\n@end"];        // .m 文件路径    NSString *contentFileStringPath =     [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"/Documents/%@", fullContentName]];        [contentFileString writeToFile:contentFileStringPath                        atomically:YES                          encoding:NSUTF8StringEncoding                             error:nil];        // 提示信息    NSLog(@"生成的文件在以下路径中 \n%@", [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"/Documents"]]);}@end

用工具生成的Model如下:

 

将jsonModel转化为文件