iOS-jason解析的方法:解析庫

在作項目的時候免不了要解析網絡數據,XML 和 JSon 格式html

這篇文章探討解析JSon數據:ios

JSon解析庫:
git

一、NSJSONSerialization (蘋果 PAI)github

二、JSONKit json

三、NextiveJson網絡

四、YAJLapp

五、SBJSON  (json-framework)spa

六、TouchJSONcode

速度比較:htm

大部分人用SBJSon,可是五、6的速度最慢,  一、2的速度最快。

使用詳解:

一、NSJSONSerialization

https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSJSONSerialization_Class/index.html

解析json數據爲 NSDictionary、NSArray :

NSData *data = dataes;//網絡解析到dataes
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
//再從字典中獲取各類數據

封裝 NSDictionary 、 NSArray 爲json數據:

NSDictionary *dic;  
if ([NSJSONSerialization isValidJSONObject:dic]){  
    //isValidJSONObject 判斷對象是否能夠構建成json對象 
    NSError *error;  
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&error];  
    //NSJSONWritingPrettyPrinted 把json數據格式化,不然會在一行中顯示。更有可讀性。  
    NSString *json =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];  
}


二、JSONKit 

https://github.com/johnezang/JSONKit

#import "JSONKit.h"    (沒有使用ARC   添加  -fno-objc-arc) 

解析json數據爲 NSDictionary、NSArray :

NSData *data = dataes;//網絡解析到dataes
NSDictionary *dic = [data  objectFromJSONData];

封裝 NSDictionary 、 NSArray 爲json數據:

NSDictionary *dic;
NSString *strJson = [dic JSONString];


五、SBJSON

http://stig.github.com/json-framework/

解析json數據爲 NSDictionary、NSArray :

NSDictionary *dic;
SBJsonWriter *json = [[SBJsonWriter alloc] init];  
NSString *str = [json stringWithObject:dic];

封裝 NSDictionary 、 NSArray 爲json數據:

NSData *datas;
NSString * str = [[NSString alloc] initWithData: datas encoding:NSUTF8StringEncoding]; 
NSDictionary *dic = [[[SBJsonParser alloc] init] objectWithString:str];
相關文章
相關標籤/搜索