json Export

2018-06-15  本文已影响0人  foolish_hungry

转 OC model

    NSString *jsonString = @"{ \"name\" : \"tyler\", \"height\": 10, \"items\": [1,2,3], \"desc\": {}}";
    NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    NSError *error;
    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONWritingPrettyPrinted error:&error];
    [self resolveDict:dic];

// 自动打印属性字符串
- (void)resolveDict:(NSDictionary *)dict{
    
    // 拼接属性字符串代码
    NSMutableString *strM = [NSMutableString string];
    
    // 1.遍历字典,把字典中的所有key取出来,生成对应的属性代码
    [dict enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
        
        // 类型经常变,抽出来
        NSString *type;
        
        if ([obj isKindOfClass:NSClassFromString(@"NSString")]) {
            type = @"NSString";
        }else if ([obj isKindOfClass:NSClassFromString(@"__NSArrayM")]){
            type = @"NSArray";
        }else if ([obj isKindOfClass:NSClassFromString(@"__NSCFNumber")]){
            type = @"NSInteger";
        }else if ([obj isKindOfClass:NSClassFromString(@"__NSDictionaryM")]){
            type = @"NSDictionary";
        }
        
        
        // 属性字符串
        NSString *str;
        if ([type containsString:@"NS"]) {
            str = [NSString stringWithFormat:@"@property (nonatomic, strong) %@ *%@;",type,key];
        }else{
            str = [NSString stringWithFormat:@"@property (nonatomic, assign) %@ %@;",type,key];
        }
        
        // 每生成属性字符串,就自动换行。
        [strM appendFormat:@"\n%@\n",str];
        
    }];
   
    // 把拼接好的字符串打印出来,就好了。
    NSLog(@"%@",strM);
    
}

上一篇 下一篇

猜你喜欢

热点阅读