前提:配置到某具體的工程項目中
複製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);