随笔分类 - iphone-json
json
    
摘要: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  
月光的尽头
    
            
        
摘要: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  
月光的尽头
    
            
        
摘要: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  
月光的尽头
    
            
        
摘要: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  
月光的尽头
    
            
        
摘要: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  
月光的尽头
    
            
        
摘要: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  
月光的尽头
    
            
        
摘要: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  
月光的尽头
    
            
        
摘要: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  
月光的尽头
    
            
        
摘要:一.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  
月光的尽头
    
            
        
摘要: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  
月光的尽头
    
            
        
摘要:http://www.json.org/json-zh.htmlJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,是“名称/值”对的集合具有以下这些形式:1.对象:是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。2.数组:是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。3.值(value):可以是双引号括起来的字符串(string)、数值(number)、t
        阅读全文
            
                posted @ 2012-02-17 11:57  
月光的尽头
    
            
        
 
                    
                
 
 浙公网安备 33010602011771号
浙公网安备 33010602011771号