NSJSONSerialization

在iOS 5发布以后,苹果开始对Json的解析进行支持.

所以至此开始如果你的App只能支持iOS5以上时就考虑别用开源框架了.毕竟用系统的速度才是最快的.

那么开始:

一:将拿到的Json字符串 转换成 Object,使用如下代码

+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;

三个参数,和一份返回值,现在每个分别介绍其作用和用法:

data :如果你拿到的是服务器返回过来的一个长字符串,那么需要先将NSString 转换成NSData,代码如下:

[@"{\"a\":\"b\"}" dataUsingEncoding:NSUTF8StringEncoding]

官方注释里面提到:UTF-8是最好最快的执行转换方式.
options:

NSJSONReadingMutableContainers: 设置此参加那返回的对象是可以随时添加新的值,也就是 Mutable 类型的对象

NSJSONReadingMutableLeaves: 还不知道

NSJSONReadingAllowFragments:设置此参数那返回对象是不能再去动态修改的, 如:NSArray NSDictionary

error:如果出错,可以打印看看,虽然是英文的

return:返回的对象类型是由需要转换Json决定的,所以可能是 NSArray 也可能是 NSDictionary

时间: 2024-07-30 04:40:39

NSJSONSerialization的相关文章

NSJSONSerialization能够处理的JSONData

NSJSONSerialization能够处理的JSONData You use the NSJSONSerialization class to convert JSON to Foundation objects and convert Foundation objects to JSON. 你用NSJSONSerialization这个类来将JSON数据转换成Foundation对象或者将Foundation对象转换成JSON数据. An object that may be conver

xcode-JSON解析出现了问题

问题描述 JSON解析出现了问题 获取了一个JSON无法解析. 代码: [httpClient postPath:@"""" parameters:parameters success:^(AFHTTPRequestOperation *operation id responseObject) { NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:responseObject optio

开源HYBUnicodeReadable日志显示Unicode中文

原文出自:标哥的技术博客 前言 开发中经常需要打印日志以查看数据是否正确,或者说查看数据的格式.但是,苹果对于我们的NSDictionary.NSSet.NSArray等值有中文时,打印出来的是Unicode编码,人类无法直接读懂,因此,笔者研究研究如何将打印出来的日志保持原有的格式化且能够将Unicode编码打印出来是正常人类可读懂的中文. 实现原理 苹果给我们提供了本地化的方法,对于NSDictionary.NSSet.NSArray都可以重写该方法来实现: NSSet实现 对于NSSet实

ios-转换后JSON响应获取空值

问题描述 转换后JSON响应获取空值 转换为NSArray后,JSOn响应得到的是空值 JSON Response : JSON Log : [ { "0": "41", "intid": "41", "1": "u8a00u3046", "varfirstname": "u8a00u3046", "2": "test

swift网络编程入门应用:天气预报

首先在Main.storyborad中添加并设置好三个label做简单的界面显示: 1 import UIKit 2 3 //1.construct a constructs 4 struct Weather { 5 var city: String? 6 var weather: String? 7 var temp: String? 8 }//为什么不实用class呢,因为结构体初始化方便,不用写初始化方法 9 10 11 12 class ViewController: UIViewCon

Swift 性能探索和优化分析

Swift 性能探索和优化分析 本文首发在 CSDN<程序员>杂志,订阅地址 http://dingyue.programmer.com.cn/. Apple 在推出 Swift 时就将其冠以先进,安全和高效的新一代编程语言之名.前两点在 Swift 的语法和语言特性中已经表现得淋漓尽致:像是尾随闭包,枚举关联值,可选值和强制的类型安全等都是 Swift 显而易见的优点.但是对于高效一点,就没有那么明显了.在 2014 年 WWDC 大会上 Apple 宣称 Swift 具有超越 Object

iOS中 自定义cell升级版 (高级)

接上次分享的自定义cell进行了优化:http://blog.csdn.net/qq_31810357/article/details/49611255 指定根视图: [objc] view plain copy self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:[[RootTableViewController alloc] initWithStyle:UITa

iOS访问https ssl和tls双向加密

文章已经移到此处:http://www.henishuo.com/ios-https-tls-ssl/ 关于https和ssl的原理,请到此处查看:http://blog.163.com/magicc_love/blog/static/185853662201321423527263/ 由于项目需求,访问服务是https的,并且使用的是ssl加密方式 下面说明使用MKNetworkit网络库实现的代码: - (void)testClientCertificate { SecIdentityRef

JSONString 与 JSONData 与字典或者数组互相转化

JSON JSON相关的,数据彼此间的转化进行了简单地封装,源码如下,支持arc与非arc YXJSON.h + YXJSON.m // // YXJSON.h // // JSONString 与 JSONData 与 字典或者数组互相转化 // // Copyright (c) 2014年 YouXian. All rights reserved. // #import <Foundation/Foundation.h> @interface YXJSON : NSObject /** 将