// // 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