久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

IOS 開發之NSDictionary轉換成JSON字符串

這篇文章主要介紹了IOS 開發之NSDictionary轉換成JSON字符串的相關資料,這里提供實例幫助大家學習理解這部分知識,需要的朋友可以參考下

IOS 開發之NSDictionary轉換成JSON字符串

普通情況下,你可能會用一個NSDictionary的分類去做NSDictionary轉JSON,如下代碼:

NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:&error];
if (! jsonData) {
  return @"{}";
} else {
  return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}

然而,NSDictionary裝的數據類型魚龍混雜,有可能是NSDate,NSNumber,NSValue等Objective-C對象,而[NSJSONSerialization dataWithJSONObject:options:error:]這個方法是不能解析這些對象的,如果有這些對象,則會導致crash。所以我們應該在調用NSJSONSerialization之前加一步,將所有數據處理成NSString,代碼如下:

NSError *error = nil;
NSData *jsonData = nil;
if (!self) {
  return nil;
}
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[self enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
  NSString *keyString = nil;
  NSString *valueString = nil;
  if ([key isKindOfClass:[NSString class]]) {
    keyString = key;
  }else{
    keyString = [NSString stringWithFormat:@"%@",key];
  }

  if ([obj isKindOfClass:[NSString class]]) {
    valueString = obj;
  }else{
    valueString = [NSString stringWithFormat:@"%@",obj];
  }

  [dict setObject:valueString forKey:keyString];
}];
jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error];
if ([jsonData length] == 0 || error != nil) {
  return nil;
}
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
return jsonString;

這樣就NSDictionary轉JSON就不會crash了,同理,NSArray也應該這樣做。

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

本篇文章主要介紹了移動端HTML5頁面端去掉input輸入框的白色背景和邊框,非常具有實用價值,需要的朋友可以參考下。
據目前的智能手機的2大操作系統之爭,拼的非常的火熱!今天,html5模板網跟大家來分享下,站在移動APP設計的角度來對比iOS7和Android4.4到底有什么區別?第一、iOS7和And
每天為大家推薦幾個很實用的APP界面設計源文件或者是APP設計干貨,是html5模板網發展的動力!同時博主也是一個喜愛收藏精致app界面設計圖片素材的愛好者。在分享之余
微信APP我想是大家天天面對的一個溝通交流的工具吧!而且微信APP在去年就已經上榜全球最受歡迎手機app應用。穩居前十的地位不可動搖! 也是我們中國移動互聯網優
主站蜘蛛池模板: 精品国产欧美一区二区 | 黄色成人免费看 | 先锋资源在线 | 精品在线一区 | 在线观看一区 | 91欧美激情一区二区三区成人 | 91精品一区二区三区久久久久 | 九九热免费视频在线观看 | 亚洲国产精品一区二区第一页 | 免费黄色的视频 | 免费一级片 | 青青草av | 天天干狠狠干 | 黄色一级电影在线观看 | 久久久久久黄 | www.操.com| 精品国模一区二区三区欧美 | 粉嫩在线 | 色网在线观看 | 亚洲热在线视频 | 日韩欧美久久 | 色先锋影音 | 久在线 | 欧美一区二区三区在线观看视频 | 国产不卡一区 | 久久九九影视 | 国产日韩欧美一区二区 | 日韩 欧美 二区 | 色毛片 | 巨大荫蒂视频欧美另类大 | 国产精品日韩欧美一区二区三区 | 高清视频一区二区三区 | 色视频网站 | 中文字幕一级 | 亚洲午夜精品视频 | 水蜜桃亚洲一二三四在线 | 成人免费视频观看 | 精品久久一区 | 欧美精品综合在线 | 久久久久久亚洲 | 在线第一页 |