NSDictionary,NSArray转成NSData(JSON)NSString类型

来源:互联网 发布:软件质量品质管理 编辑:程序博客网 时间:2024/04/29 17:08
////  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

//
//  NSArray+toJSONorNSString.m
//  UIKit数据转换
//
//  Created by mac on 15-4-4.
//  Copyright (c) 2015年 www.swift.com. All rights reserved.
//

#import "NSArray+toJSONorNSString.h"

@implementation NSArray (toJSONorNSString)

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


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



1 0
原创粉丝点击