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

IOS 開(kāi)發(fā)之NSDictionary轉(zhuǎn)換成JSON字符串

這篇文章主要介紹了IOS 開(kāi)發(fā)之NSDictionary轉(zhuǎn)換成JSON字符串的相關(guān)資料,這里提供實(shí)例幫助大家學(xué)習(xí)理解這部分知識(shí),需要的朋友可以參考下

IOS 開(kāi)發(fā)之NSDictionary轉(zhuǎn)換成JSON字符串

普通情況下,你可能會(huì)用一個(gè)NSDictionary的分類去做NSDictionary轉(zhuǎn)JSON,如下代碼:

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

然而,NSDictionary裝的數(shù)據(jù)類型魚(yú)龍混雜,有可能是NSDate,NSNumber,NSValue等Objective-C對(duì)象,而[NSJSONSerialization dataWithJSONObject:options:error:]這個(gè)方法是不能解析這些對(duì)象的,如果有這些對(duì)象,則會(huì)導(dǎo)致crash。所以我們應(yīng)該在調(diào)用NSJSONSerialization之前加一步,將所有數(shù)據(jù)處理成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轉(zhuǎn)JSON就不會(huì)crash了,同理,NSArray也應(yīng)該這樣做。

如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

本篇文章主要介紹了移動(dòng)端HTML5頁(yè)面端去掉input輸入框的白色背景和邊框,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
據(jù)目前的智能手機(jī)的2大操作系統(tǒng)之爭(zhēng),拼的非常的火熱!今天,html5模板網(wǎng)跟大家來(lái)分享下,站在移動(dòng)APP設(shè)計(jì)的角度來(lái)對(duì)比iOS7和Android4.4到底有什么區(qū)別?第一、iOS7和And
每天為大家推薦幾個(gè)很實(shí)用的APP界面設(shè)計(jì)源文件或者是APP設(shè)計(jì)干貨,是html5模板網(wǎng)發(fā)展的動(dòng)力!同時(shí)博主也是一個(gè)喜愛(ài)收藏精致app界面設(shè)計(jì)圖片素材的愛(ài)好者。在分享之余
微信APP我想是大家天天面對(duì)的一個(gè)溝通交流的工具吧!而且微信APP在去年就已經(jīng)上榜全球最受歡迎手機(jī)app應(yīng)用。穩(wěn)居前十的地位不可動(dòng)搖! 也是我們中國(guó)移動(dòng)互聯(lián)網(wǎng)優(yōu)
主站蜘蛛池模板: 欧美黑人一区二区三区 | 日本不卡视频在线观看 | 日韩国产欧美 | 国产精品久久久久久久久久久久久久 | 精品日韩在线 | 在线观看的av网站 | 精品久久一区二区三区 | 天天摸天天爽 | 成人国产网站 | 亚洲图片一区二区 | 国产成人精品亚洲男人的天堂 | 精品国产区一区二 | 亚洲砖区区免费 | 免费av网站在线观看 | 一级黄色片在线观看 | 国产精品天堂 | 亚洲精品影院 | 亚洲黄色一级 | 开心激情婷婷 | av手机天堂网 | 欧美黑人一区二区三区 | 亚洲精品影视 | 久久视频免费看 | 日韩免费观看 | 成人激情视频 | 免费看色片 | 日韩精品极品 | 天天插天天爽 | 亚洲欧美日韩一区 | 亚洲成人免费在线 | 国产精品手机在线 | 动漫av在线| 中文字幕一区在线观看 | 亚洲精彩视频 | 精品国产成人 | 欧美揉bbbbb揉bbbbb | 开心激情婷婷 | 一区二区三区视频在线 | 免费黄色小网站 | 亚洲福利网站 | 亚洲天天干 |