您的位置:首页 > Web前端 > JavaScript

iphone开发 使用TouchJSON框架 解析JSON

2012-08-07 10:22 381 查看
前提:配置到某具体的工程项目中

复制TouchJSON框架源代码到自己的工程项目中,即将TouchJSON/Source目录及文件拷贝到项目中,在添加到工程项目中时确认选中“Copy items into destination groups folder(if needed)”项。

转换JSON数据到对象——即解析,反序列化操作

首先引入文件:#import "CJSONDeserializer.h"到项目具体源文件中。

然后就可以将一个含有JSON数据的NSData对象进行转换成一个对象。

NSData *theJSONData = /* 这里是一些JSON数据 */

NSError *theError = nil;

id theObject = [ [ CJSONDeserializer deserializer] deserializeAsDictionary
: jsonData error:&error];

返回结果的对象的类(id theObject)取决于这个JSON数据的类型。如果这个对象是NULL则解析失败,你需要检查参数错误。

以下是解析过程的示例代码:

NSString  *jsonStringSrc  =  @"从文件读取或者从网络获得的JSON字符串";
NSData  *jsonData  =  [jsonStringSrc  dataUsingEncoding : NSUTF8StringEncoding];
NSError  *error  =  nil ;
NSDictionary  *dictionary  =  [ [ CJSONDeserializer  deserializer ]  deserializeAsDictionary : jsonData   error : &error ];


上述代码是将一个含有JSON数据字典的字符串转换为一个NSDictionary对象。如果上例中JSON根对象不是个字典则反序列化操作失败。

转换某对象到JSON数据——即生成,序列化操作

首先引入文件:#import "CJSONDataserializer.h"到项目具体源文件中。

然后就可以将一个具体对象序列化为一个JSON数据。

NSDictionary *dictionary = [NSDictionary dictionaryWithObject:@"b"
forkey:@"a"];

NSError *error = NULL;

NSData *jsonData = [[CJSONSerializer serializer] serializeObject:dictionary
error:&error];

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

NSLog(@"%@",jsonString);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐