你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> ios中json object轉換成字符串

ios中json object轉換成字符串

編輯:IOS開發綜合

在ios中也經常需要操作json object,特別是與服務端交互的時候

項目中數據庫訪問用了FMDB組件,有一個很方便的API,可以直接返回一個NSDictionary

FMResultSet *rs = [db executeQuery:sql, latestObj, nowObj, latestObj, nowObj];
    while ([rs next]) {
        [result addObject:[rs resultDictionary]];
    }

然後我想把NSDictionary直接轉成NSString,通過description方法

[middle appendString:[row description]];

但是這樣不行,雖然返回值類型是NSString,但並不是正確的json格式。在網上搜索了一番,需要先從NSDictionary轉為NSData,再從NSData得到NSString,格式就是正確的了:

NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:row options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

關鍵就是dataWithJSONObject方法,參數是NSDictionary,返回值是NSData。然後再通過NSString的initWithData方法,得到正確的NSString

還有另一個相反的API,可以從NSData得到NSDictionary,然後就可以調用NSDictionary的API來操作json object

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    
NSError *error = nil;
NSDictionary *jsonArray = [NSJSONSerialization JSONObjectWithData:response options:kNilOptions error:&error];// 包含兩個key,code和result,或者code和error
    
NSNumber *code = [jsonArray objectForKey:@"code"];
if([code intValue] == 0){
    NSLog(@"添加備份記錄成功", nil);
}

上面代碼調用了JSONObjectWithData,從NSData得到NSDictionary,NSDictionary就視為一個json object

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved