摘要: json流解析叠加器1 //实现了流解析配置代理协议2 @interface SBJsonStreamParserAccumulator : NSObject <SBJsonStreamParserAdapterDelegate>3 4 //声明的value对象,表示解析完成后的objc对象5 @property (copy) id value;6 7 @end实现了配置代理协议SBJsonStreamParserAdapterDelegate的两个方法: 1 /** 2 返回NSArray或NSDictionary对象 3 */ 4 - (void)parser:(SBJsonS 阅读全文
posted @ 2012-02-20 16:51 月光的尽头 阅读(895) 评论(0) 推荐(0)
摘要: json流解析叠加器1 //实现了流解析配置代理协议2 @interface SBJsonStreamParserAccumulator : NSObject <SBJsonStreamParserAdapterDelegate>3 4 //声明的value对象,表示解析完成后的objc对象5 @property (copy) id value;6 7 @end 阅读全文
posted @ 2012-02-20 16:46 月光的尽头 阅读(537) 评论(0) 推荐(0)
摘要: json流解析配置器1.定义了一个枚举配置器类型:1 typedef enum {2 SBJsonStreamParserAdapterNone,3 SBJsonStreamParserAdapterArray,4 SBJsonStreamParserAdapterObject,5 } SBJsonStreamParserAdapterType;2.定义了一个json流解析配置器代理协议: 1 /** 2 @json流解析配置器代理协议 3 从流解析配置器获得obj或array对象的代理 4 由流解析叠加器SBJsonStreamParserAccumulator... 阅读全文
posted @ 2012-02-20 16:39 月光的尽头 阅读(868) 评论(0) 推荐(0)
摘要: json数据流解析器1.定义了一个枚举值表示解析状态:1 typedef enum {2 SBJsonStreamParserComplete,3 SBJsonStreamParserWaitingForData,4 SBJsonStreamParserError,5 } SBJsonStreamParserStatus;2.定义了一个json流解析代理协议: 1 /** 2 由SBJsonStreamParserAdapter类实现 3 */ 4 @protocol SBJsonStreamParserDelegate 5 6 //当找到obj时调用 7 - (... 阅读全文
posted @ 2012-02-20 15:48 月光的尽头 阅读(1400) 评论(0) 推荐(0)
摘要: json解析器 1 /** 2 json转objc 3 解析json字符串和NSData对象 4 内部使用了SBJsonStreamParser类 5 */ 6 7 @interface SBJsonParser : NSObject 8 9 /**10 @最大递归深度,默认为3211 如果嵌套的太深,大于32被视为恶意解析,返回nil,并发送一个错误信号12 可以通过设置maxDepth为0,来取消此安全功能13 */14 @property NSUInteger maxDepth;15 16 /**17 @返回一个出错信息,如果没错误,返回为nil18 */19 @... 阅读全文
posted @ 2012-02-20 14:46 月光的尽头 阅读(6996) 评论(0) 推荐(0)
摘要: json流编写叠加器,拥有个可变data对象1 @interface SBJsonStreamWriterAccumulator : NSObject <SBJsonStreamWriterDelegate>2 3 @property (readonly, copy) NSMutableData* data;4 5 @end具体实现: 1 @implementation SBJsonStreamWriterAccumulator 2 3 @synthesize data; 4 5 - (id)init { 6 self = [super init]; 7 if (self)... 阅读全文
posted @ 2012-02-20 13:56 月光的尽头 阅读(756) 评论(0) 推荐(0)
摘要: json流编写器允许传入一个消息流对象,把它写入到SBJsonStreamWriterAccumulator的data里.1.里面含有个新的NSObject类别,把objc对象转成json允许的对象类型 1 @interface NSObject (SBProxyForJson) 2 3 /** 4 json只支持NSArray和NSDictionary等类型 5 所以转换之前先把特定objc对象转成这两种类型的形式 6 如果你有一个自定义类,要把它转成json,需要实现该方法 7 例子如下: 8 @code 9 - (id)proxyForJson {10 return [N... 阅读全文
posted @ 2012-02-20 12:02 月光的尽头 阅读(2141) 评论(0) 推荐(0)
摘要: SBJsonWriter:json编写器类内部使用了json流编写器:SBJsonStreamWriter类,和json流编写累加器:SBJsonStreamWriterAccumulator类主要有4个属性: 1 /** 2 @最大递归深度,默认为32 3 如果嵌套的太深,大于32被视为恶意解析,返回nil,并发送一个错误信号 4 可以通过设置maxDepth为0,来取消此安全功能 5 */ 6 @property NSUInteger maxDepth; 7 8 /** 9 @返回一个出错信息,如果没错误,返回为nil10 */11 @property (readonly, ... 阅读全文
posted @ 2012-02-17 17:49 月光的尽头 阅读(4044) 评论(0) 推荐(0)
摘要: 一.NSObject+SBJson.h1.把objc对象编码成json字符串通过类别,为NSObject添加新方法:[NSObjectJSONRepresentation]1 @interface NSObject (NSObject_SBJsonWriting)2 /**3 虽然定义成NSObject的类别,但仅对NSArray和NSDictionary有效4 返回:已编码的json对象,或nil5 */6 - (NSString *)JSONRepresentation;7 @end2.把json对象解析为objc对象通过类别,为NSString添加新方法:[NSStringJSON... 阅读全文
posted @ 2012-02-17 16:03 月光的尽头 阅读(2838) 评论(0) 推荐(0)
摘要: SBJson是一个开源的json库,结构如下:结构主要分为:主头文件SBJson.h,一个对象类别扩展NSObject+SBJson.h,一个json解析包Parser,一个json编写包Writer任何使用SBJson库的地方都要导入SBJson.h头文件#import "SBJson.h" 1.JSON转Objective-C,方法如下:null -> NSNullstring -> NSStringarray -> NSMutableArrayobject -> NSMutableDictionarytrue -> NSNumber 阅读全文
posted @ 2012-02-17 15:31 月光的尽头 阅读(3613) 评论(0) 推荐(0)