`
dcj3sjt126com
  • 浏览: 1879005 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

NSJSONSerialization介绍

    博客分类:
  • IOS
阅读更多

ios5中apple增加了解析JSON的api——NSJSONSerialization。网上已经有人做过测试,NSJSONSerialization在效率上完胜SBJSON、TouchJSON、YAJL、JSONKit、NextiveJson。详情见这里。既然apple为我们提供了这么良好的工具,我们没理由不用吧。

  NSJSONSerialization提供了将JSON数据转换为Foundation对象(一般都是NSDictionary和NSArray)和Foundation对象转换为JSON数据(可以通过调用isValidJSONObject来判断Foundation对象是否可以转换为JSON数据)。

  下面提供一个从豆瓣电台下载的json数据转换的代码

View Code 

#define kGlobalQueue    dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)
#define kDoubanUrl      @"http://douban.fm/j/mine/playlist?type=n&h=&channel=0&from=mainsite&r=4941e23d79"
-(void) loadJsonData:(NSURL *)url
{
    dispatch_async(kGlobalQueue, ^{
        NSData *data = [NSData dataWithContentsOfURL:url];
        [self performSelectorOnMainThread:@selector(parseJsonData:) withObject:data waitUntilDone:NO];
    });
}
-(void) parseJsonData:(NSData *)data
{
    NSError *error;
    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
    if (json == nil) {
        NSLog(@"json parse failed \r\n");
        return;
    }
    NSArray *songArray = [json objectForKey:@"song"];
    NSLog(@"song collection: %@\r\n",songArray);

    _song = songArray;
    self.songIndex = 0;
    NSDictionary *song = [songArray objectAtIndex:0];
    NSLog(@"song info: %@\t\n",song);
}

 Foundation对象转换为json数据

View Code 

NSDictionary *song = [NSDictionary dictionaryWithObjectsAndKeys:@"i can fly",@"title",@"4012",@"length",@"Tom",@"Singer", nil];
    if ([NSJSONSerialization isValidJSONObject:song])
    {
        NSError *error;
        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:song options:NSJSONWritingPrettyPrinted error:&error];
        NSString *json =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
        NSLog(@"json data:%@",json);
    }

 

分享到:
评论

相关推荐

    下载data数据之后使用系统自带的JSON解析

    下面我们将详细介绍如何在iOS中解析JSON数据。 首先,我们需要了解JSON的基本结构。JSON数据主要由对象(Object)和数组(Array)组成。对象以大括号 `{}` 包裹,键值对以冒号 `:` 分隔,各个键值对之间用逗号 `,` ...

    ios json测试demo

    以下将详细介绍这两个核心知识点。 1. JSON数据封装: 在iOS中,JSON数据通常以字符串的形式传输,可以被解析成Objective-C或Swift的对象。数据封装是指将应用程序的数据模型转化为JSON格式的过程。苹果提供了两个...

    ios下json数据解析的实例

    通过以上介绍,你应该对iOS下的JSON数据解析有了基本的理解。实际开发中,根据项目的具体需求,你可能还需要处理更复杂的情况,比如嵌套的JSON对象、处理错误、优化性能等。但不论如何,`NSJSONSerialization`都是...

    IOS开发 json实例

    在iOS开发中,JSON(JavaScript Object Notation)是一种常见的数据交换格式,被广泛用于与服务器进行数据交互,尤其是在调用第三方API时...通过以上介绍和JisonThreeDemo项目的实践,相信你能够更好地掌握这一知识点。

    iOS_JSON_解析

    本篇将详细介绍在iOS中解析JSON数据的六种方法,这些方法都是可以直接运行的。 1. **NSJSONSerialization**: iOS内置了`NSJSONSerialization`类,它提供了方便的方法来解析和序列化JSON数据。要解析JSON,可以...

    FromJsonTest Demo代码

    以下将详细介绍相关知识点。 1. JSON基本概念: JSON (JavaScript Object Notation) 是一种基于文本的数据交换格式,主要由键值对(key-value pairs)组成,可以表示数组(arrays)和对象(objects)。它的语法...

    api接口快速转化为oc的字典

    本文将详细介绍如何将API接口的JSON数据快速转化为Objective-C(OC)中的字典,以便在iOS应用中使用。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个...

    IOS开发---JSON不同的四种解析方式

    本文将详细介绍四种常见的iOS JSON解析方式:TouchJSON、JSONKit、原生JSON以及SBJSON。 1. **TouchJSON** TouchJSON是早期流行的JSON库,它提供了简单的API来解析和生成JSON。使用TouchJSON,你可以通过`...

    IOS 简单的本地json格式文件解析的实例详解

    本文主要介绍了IOS 简单的本地json格式文件解析的实例详解,希望通过本文大家能够掌握这部分内容。 json格式文件是一种轻量级的数据交换格式,广泛应用于web开发和移动应用开发中。IOS平台上的json格式文件解析主要...

    iOS Network Programming

    书中会教授如何使用NSJSONSerialization和其他第三方库,如AFNetworking、Alamofire,处理网络数据的解析和转换。 总的来说,《iOS Network Programming》是一本全面覆盖iOS网络编程各个方面的资源,无论你是初学者...

    iphone开发-------JSON解析

    本篇主要介绍如何在iPhone开发中进行JSON解析,结合给出的标签“源码”和“工具”,我们将深入探讨JSON解析的原理以及如何使用第三方库SBJSON进行操作。 一、JSON基础 JSON是一种轻量级的数据格式,它基于...

    iOS 5 Programming Cookbook 中文版

    书中将介绍如何使用NSJSONSerialization进行JSON编码和解码。XML则是另一种常用的数据交换格式,书中会讲解如何使用NSXMLParser或NSXMLDocument进行XML解析。 3. **Twitter集成**:iOS 5开始支持Twitter框架,使得...

    Professional iOS Network Programming 2013

    - **数据解析**:学习如何使用NSJSONSerialization类将JSON数据转换成Objective-C对象。 - **数据验证**:介绍如何对服务器返回的数据进行验证,确保数据的安全性和完整性。 ##### 3.3 错误处理 - **章节概述**...

    swift-iOS(OC)JSON转Model的脚本

    本篇将详细介绍如何在Swift和Objective-C中进行JSON到Model的转换,并基于提供的"swift-iOS(OC)JSON转Model的脚本"进行深入探讨。 首先,我们来看Objective-C的实现。在OC中,可以使用内置的`NSJSONSerialization`...

    基于objective-c将JSON格式化输出为模型的属性

    本篇文章将详细介绍如何在Objective-C中将JSON格式的数据映射到模型的属性。 首先,我们需要创建一个Objective-C类来表示我们的数据模型。每个类属性应对应JSON中的一个键值对。例如,如果JSON数据包含用户信息,...

    IOS抓包工具和JSON解析工具

    本文将详细介绍iOS平台上的抓包工具及JSON解析工具的使用。 首先,我们来讨论iOS抓包工具。在iOS设备上,最常用的抓包工具是Charles。Charles是一个强大的HTTP代理服务器,它可以截取并显示HTTP和HTTPS流量。安装和...

    IOS网络编程与云端应用

    JSON和XML是常见的数据交换格式,iOS提供了NSJSONSerialization和NSXMLParser等工具进行解析。书中详细讲解了如何处理JSON和XML数据,包括序列化和反序列化,以及在实际应用中的注意事项。 三、WebSocket与实时通信...

    iOS读写json文件的方法示例

    下面将详细介绍iOS读写json文件的相关知识点。 获取沙盒路径 在iOS系统中,每个应用程序都有自己的沙盒目录,该目录是文件系统中的一个目录,但是iOS系统会将每个应用程序的沙盒目录与文件系统的其他部分隔离,...

    ios下三种解析json的库 sbjson TouchJson JSONKit

    本篇文章将详细介绍三种在iOS开发中常用的JSON解析库:SBJSON、TouchJSON以及JSONKit。 1. **SBJSON** SBJSON是Stig Brautaset开发的一个开源库,它提供了一个简单的方法来解析和生成JSON数据。SBJSON不仅支持...

    IOS实现简易天气预报功能适合初学者

    本教程将介绍如何利用iOS技术栈,包括Objective-C(OC)编程语言、AFNetworking库以及JSON数据解析,来创建一个简单的天气预报应用。 首先,我们需要了解iOS的基础架构。在iOS应用开发中,通常使用Xcode作为集成...

Global site tag (gtag.js) - Google Analytics