当前位置:主页 > 制造电子 >iPhone平台上的json >

iPhone平台上的json

2020-06-07

iPhone平台上的json

当我们在开发 iPhone 应用程式时,必然会对 Cocoa Touch 的平台功能感到不足,在接下来的几篇文章中,笔者将介绍一些在 Cocoa 上热门的第三方函式库,还请多多指教!

json-framework

在所有的第三方函式库中,最有名且被广泛使用的不外乎便是 json-framework 了,就连 iPhone OS 本身也有用到这个函式库。JSON 是目前网路服务 API 中很常见的资料格式,几乎所有的 API 都是使用 JSON 格式,因此当我们需要开发网路服务相关的软体时,便会需要这个函式库。

而顾名思义,这个函式库便是提供开发者可以透过 Objective-C 方便的建立 JSON 字串或是解码 JSON 字串,读者可以在 专案的网站上下载 。

安装方式

在下载完 json-framework 并且装载后便会看到许多资料夹,而其中的 JSON 资料夹便是我们所需要的档案。就如同加入其他档案到专案中一般,只需要将这个资料夹拖放到 Xcode 的视窗画面中,便可以完成安装。

而在那些需要使用 json-framework 功能的程式中,只需要在程式码开头加入:

#import "JSON.h"

这样就算完成所有的设置工作了,很简单吧!

使用方式

以 Facebook 的 Open Graph Protocol 为例,首先我们必须先取得 JSON 字串:

NSURL *url = [NSURL URLWithString:@"http://graph.facebook.com/cyberbuzz"]; NSString *JSONString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

再来便是呼叫 json-framework 所提供的方法来解析字串,将解析的结果储存在 NSDictionary 中:

NSDictionary *items = [JSONString JSONValue];

最后便可以透过透过 NSLog 来确认解析的结果、或是透过 objectForKey 等方法来取得 JSON 中的值:

NSLog;

至于要将 NSDictionary 转成 JSON 字串也相当容易,只要呼叫:

NSString *JSONString = [items JSONFragment];

这样就可以顺利建立出 JSON 字串了。

补充

以上的例子是使用 NSDictionary 作为解码、编码的主要物件,但是实际上 JSONValue 的回传值以及 JSONFragment 的呼叫物件也可能会 NSArray、NSNumber、NSString 或是 NSNull,就看所需的资料格式而定。

此外,若是读者在呼叫 JSONValue 或其他方法出现错误时,根据官方 FAQ 的说法,这有可能是 iPhone OS 3.0 的 Bug。为了解决这个问题,读者可以试着在专案的 Build 的设定中对 linker 加入-all_load 选项,这样一来就可以执行无误。

参考资料

json-framework Project Home

相关推荐