温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何在IOS 开发中将NSDictionary转换成JSON字符串

发布时间:2021-02-23 16:53:43 来源:亿速云 阅读:682 作者:Leah 栏目:开发技术

本篇文章为大家展示了如何在IOS 开发中将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;

上述内容就是如何在IOS 开发中将NSDictionary转换成JSON字符串,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI