首页 > 代码库 > JSON&XML的解析并转成模型

JSON&XML的解析并转成模型

//

//  RootViewController.m

//  json demo

//

//  Created by liman on 14-6-20.

//  Copyright (c) 2014 liman. All rights reserved.

//

 

#import "RootViewController.h"

#import "JSONManager.h"

#import "SHXMLParser.h"

#import "Model.h"

#import "XMLDictionary.h"

 

@interfaceRootViewController ()

 

@end

 

@implementation RootViewController

 

#pragma mark - 工具方法

// 删除字典里值为空的key, {}    (只针对使用了解析器SHXMLParser)

- (id)formatWithDict:(id)dict

{

    // 1. 参数不是字典, 则直接返回

    if (![dict isKindOfClass:[NSDictionaryclass]]) {

        

        return dict;

    }

    

    

    // 2. 参数是字典, 则进一步处理

    NSMutableDictionary *muDict = [NSMutableDictionarydictionaryWithDictionary:dict];

    

    for (NSString *key in [dict allKeys]) {

        

        if ([[dict objectForKey:key] isKindOfClass:[NSDictionaryclass]]) {

            

            if ([[[dict objectForKey:key] allKeys] count] == 0) {

                

                // 空字典的处理

                [muDict removeObjectForKey:key];

            }

            

        }

    }

    

    return muDict;

}

 

 

 

 

 

 

- (void)viewDidLoad

{

    [superviewDidLoad];

  

#warning - NSData ---> JSON字典/JSON字符串

//    NSData *jsonData;

//    // json字符串

//    NSString *jsonStr = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

//    // json字典

//    NSDictionary *jsonStrDic = [[JSONManager alloc] transformDatatodic:jsonData];

    

    

#warning - JSON字典 ---> Model

//    NSDictionary *json = @{

//                            @"id":@"10",

//                            @"country":@"Germany",

//                            @"dialCode": @49,

//                            @"isInEurope":@YES

//                            };

//    Model *model = [[Model alloc] initWithDictionary:json error:nil];

 

    

#warning - JSON字符串 ---> Model

//    NSString *path = [[NSBundle mainBundle] pathForResource:@"eg" ofType:@"json"];

//    NSString *json = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

//    Model *model = [[Model alloc] initWithString:json error:nil];

 

 

    

// ------------------------------------  以上:JSON,   以下:XML  --------------------------------------

    

    

    

#warning - NSData ---> XML字典 (两个解析器: 第一个会出现空字典bug,{};  第二个没有空字典bug,空字典会直接移除掉)

//    NSData *xmlData;

//    

//    // 第一个解析器

//    SHXMLParser *parser = [[SHXMLParser alloc] init];

//    NSDictionary *xmlDic = [parser parseData:xmlData];

//    

//    // 第二个解析器

//    XMLDictionaryParser *parser2 = [XMLDictionaryParser sharedInstance];

//    NSDictionary *xmlDic2 = [parser2 dictionaryWithData:xmlData];

    

 

#warning - XML字典 ---> Model

//    NSDictionary *xmlDic = @{

//                             @"id":@{},

//                            @"country":@"Germany",

//                            @"dialCode": @49,

//                            @"isInEurope":@{},

//                            };

//

//    // 删除字典里值为空的key, {}     (只针对使用了解析器SHXMLParser)

//    NSDictionary *xmlDic2 = [self formatWithDict:xmlDic];

//    

//    Model *model = [[Model alloc] initWithDictionary:xmlDic2 error:nil];

 

}

 

@end

JSON&XML的解析并转成模型