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

时间: 2024-10-05 22:27:46

JSON&XML的解析并转成模型的相关文章

JSON XML 数据解析

作为客户端,一般从后台传入的数据主要是两种 ,一种是JSON数据 一种是XML格式的数据  对于这两种数据  咱们都要一套自己的解析方法 JSON: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写. JSON 是出自于 JavaScript ,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象 常见的两种格式: 1

iOS网络编程开发—JSON和XML数据解析

iOS网络编程开发—JSON解析 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典和数组 {"name" : "jack", "age" : 10} {"names" : ["jack", "rose", "jim"]} 标准JSON格式的

JSON数据转化成模型

JSON数据转化成模型 // 1.创建url NSURL *url = kSUNUrl(@"video"); // 2.创建request NSURLRequest *request = [NSURLRequest requestWithURL:url]; // 3.发送请求数据 NSOperationQueue *queue = [NSOperationQueue mainQueue]; [NSURLConnection sendAsynchronousRequest:request

iOS开发——网络Swift篇&JSON与XML数据解析

JSON与XML数据解析 JSON数据解析(内置NSJSONSerialization与第三方JSONKit) 一,使用自带的NSJSONSerialization 苹果从IOS5.0后推出了SDK自带的JSON解决方案NSJSONSerialization,这是一个非常好用的JSON生成和解析工具,效率也比其他第三方开源项目高. NSJSONSerialization能将JSON转换成Foundation对象,也能将Foundation对象转换成JSON,但转换成JSON的对象必须具有如下属性

iOS-数据持久化基础-JSON与XML数据解析

解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 一.XML数据结构 解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 XML数据结构 XML解析SAX?方式解析从上往下,?一点?一点读取性能好苹果推荐使?用DO

JSON&XML 解析总结

JSON & XML解析 JSON(数据传输): JSON具有对象(字典)和数组两种数据格式.字典用“{}”,数组用“[]”.其实也是key-value(字符串,数值,布尔类型,对象,空对象,数组)键值对. JSON 可以与Object-C相互转换  ->则是JSON的解析过程(正向与逆向的解析-为了说明自己定义的正逆)->可用于数据的持久化,将JSON数据写入文件中保存(逆向):从文件中读出数据(正向). JSON ->Object-C(正向):jsondata->jso

NSURLSession(Get & Post,JSON、XML数据解析,文件上传下载)

NSURLSession(Get & Post,JSON.XML数据解析,文件上传下载) 一.NSURLSession概述 NSURLSession是iOS7中新的网络接口,支持后台网络操作,除非用户强行关闭. NSURLSession使用步骤: 1. 新建NSURLSessionConfiguration,用于NSURLSession的配置 2. 新建NSURLSession 3. 新建NSURLSessionTask对象 4. 执行task 其中NSURLSessionConfigurati

Json/XML/HTML数据解析

Json数据解析 https://code.google.com/p/google-gson/ 谷歌官方的jjson解析类库Gson http://www.jsonschema2pojo.org/ 该网站能将Json数据解析为POJO(简单的java对象). 1.单个对象 假设json数据如下: { "id": 100, "body": "It is my post", "number": 0.13, "create

Json/Xml简介和处理模型

JSON json简介 JSON是一种基于文本的数据交换格式,源自JavaScript,用于Web服务和其他连接的应用程序.以下部分介绍了JSON语法,JSON使用概述以及生成和解析JSON的最常用方法的说明. JSON语法 JSON只定义了两个数据结构:对象和数组.对象是一组名称 - 值对,而数组是值列表.JSON定义了七种值类型:字符串,数字,对象,数组,true,false和null. 以下示例显示包含名称 - 值对的示例对象的JSON数据.名称的值"phoneNumbers"是