代码改变世界

如何在自己工程项目中使用TouchJSON框架

  张智清  阅读(3207)  评论(1编辑  收藏  举报

前提:配置到某具体的工程项目中
复制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);

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示