// // NSDictionary+JSONorNSString.h // UIKit数据转换 // // Created by mac on 15-4-4. // Copyright (c) 2015年 www.swift.com. All rights reserved. // #import <Foundation/Foundation.h> @interface NSDictionary (JSONorNSString) /** * 转换成JSON串字符串(没有可读性) * * @return JSON字符串 */ - (NSString *)toJSONorNSString; /** * 转换成JSON串字符串(有可读性) * * @return JSON字符串 */ - (NSString *)toReadJSONorNSString; /** * 转换成JSONData(有可读性) * * @return JSONData */ - (NSData *)toJSONData; @end
// // NSDictionary+JSONorNSString.m // UIKit数据转换 // // Created by mac on 15-4-4. // Copyright (c) 2015年 www.swift.com. All rights reserved. // #import "NSDictionary+JSONorNSString.h" @implementation NSDictionary (JSONorNSString) - (NSString *)toJSONorNSString { NSData *data=[NSJSONSerialization dataWithJSONObject:self options:NSJSONReadingMutableLeaves|NSJSONReadingAllowFragments error:nil]; if (data == nil) { return nil; } NSString *str=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; return str; } - (NSString *)toReadJSONorNSString { NSData *data=[NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:nil]; if (data == nil) { return nil; } NSString *str=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; return str; } - (NSData *)toJSONData { NSData *data=[NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:nil]; return data; } @end
@end
NSArray 实现跟字典一样
下面来看控制台输出
// // ViewController.m // UIKit数据转换 // // Created by mac on 15-4-4. // Copyright (c) 2015年 www.swift.com. All rights reserved. // #import "ViewController.h" #import "NSDictionary+JSONorNSString.h" #import "NSArray+toJSONorNSString.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSDictionary *dic=@{ @"name":@"jack", @"age":@17, @"phone":@1872223455 }; NSLog(@"dic%@",[dic toJSONorNSString]); //可读性不强 NSLog(@"dic%@",[dic toReadJSONorNSString]); //JSON数据格式 NSLog(@"dic%@",[dic toJSONData]); //字典转成NSData(json) NSArray *arr=@[@"name",@"jack",@"age",@17,@"phone",@1872223455]; NSLog(@"arr:%@",[arr toJSONorNSString]); NSLog(@"arr:%@",[arr toReadJSONorNSString]);//JSON数据格式 NSLog(@"arr:%@",[arr toJSONData]);//数组转成NSData(json) } @end
NSDictionary,NSArray转成NSData(JSON)NSString类型
原文地址:http://blog.csdn.net/swift_zero/article/details/44871427