NSDictionary 或者NSArray(NSMutableArray) ==>> NSData ==>> NSString (Json):

以下代码都有详细的注释说明这些类型之间的转换(如有错误的地方还望批评指出,谢谢!)

- (void)viewDidLoad {
    [super viewDidLoad];

    /**
     *  NSDictionary ||NSArray(NSMutableArray) ==>> NSData ==>> NSString (Json):
     */
//    NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
//                            @"balance", @"key",
//                            @"remaining balance", @"label",
//                            @"45", @"value",
//                            @"USD", @"currencyCode",nil];

    NSArray *params = @[@"balance", @"key",
                        @"remaining balance", @"label",
                        @"45", @"value",
                        @"USD", @"currencyCode"];
    NSError *error = nil;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:params options:NSJSONWritingPrettyPrinted error:&error];
    NSString *jsonString;
    if ([jsonData length] > 0 && error == nil){
        jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
        NSLog(@"%@",jsonString);
    }else{
        NSLog(@"Erroe:%@",error);
    }

    /**
     *  NSString (Json): ==>>NSData ==>> NSDictionary ||NSArray(NSMutableArray)
     */
    //将NSString转化为NSData

   NSData *jsonData2 = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
     NSError *error2 = nil;
    id jsonObject  = [NSJSONSerialization JSONObjectWithData:jsonData2 options:kNilOptions error:nil];
    if (jsonObject != nil && error2 == nil){
        NSLog(@"jsonObject == %@",jsonObject);
    }else{
        // 解析错误
        NSLog(@"Erroe:%@",error2);
    }

    /**
     NSData -> NSString

     :returns: NSString
     */
//    NSString *tempStr = [[NSString alloc] initWithData:<#(NSData *)#> encoding:<#(NSStringEncoding)#>];

    /**
     NSString -> NSData
     */
//    NSData *tempData = [[[NSString alloc]init] dataUsingEncoding:<#(NSStringEncoding)#>]

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-06 17:17:15

NSDictionary 或者NSArray(NSMutableArray) ==>> NSData ==>> NSString (Json):的相关文章

NSString+JSON - iOS

日常开发中常用的一个相互转换的方法; 直接创建对应的类,引用如下方法即可实现; 具体 code 如下: 声明: #import <Foundation/Foundation.h> @interface NSString (JSON) - (id)jsonObject; /** dic -> json*/ - (NSString *)dictionaryToJson:(NSDictionary *)dic; @end 实现: #import "NSString+JSON.h&qu

iOS中NSString,NSData和char的相互转换,JSON串转化为NSDictionary或NSArray

1.NSString 转换成NSData 对象 NSData* xmlData = [@"testdata" dataUsingEncoding:NSUTF8StringEncoding]; 2.NSData 转换成NSString对象 NSData * data; NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 3.NSData 转换成char* NSData

关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary

NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary 在 OC 中我们天天都要用,而我们要怎么学习它们呢? 我认为学习这些常用的类,使用类比的方法就行了,只要学会一个类,就能类比另外两个类了.. 比如,NSString和NSMutableString的可变与不可变,主要区分的标准是,它们本身是不是可以变,可变的一般都能增,删,改,而不可变的方法主要是创建,查看,得到元素个数或者长度等等;

NSString,NSMutableString, NSArray ,NSMutableArray,NSDictionary,NSMutableDictionary 深拷贝,浅拷贝分析

NSString,NSMutableString, NSArray ,NSMutableArray,NSDictionary,NSMutableDictionary 深拷贝,浅拷贝. 首先我们得知道什么是深拷贝,什么事浅拷贝. 简单点说深拷贝就是拷贝内容,浅拷贝就是拷贝指针. 上面那些类我们可以这样理解他们的深.浅拷贝.只要上面那些类中的NSString,NSArray,NSDictionary这三个类的实例化对象是调用copy方法进行拷贝那么他们拷贝的就是一个指针,就是说他们只是拷贝了一个指向

NSDictionary或NSArray与JSON字符串相互转换

一.将NSDictionary或NSArray转化为JSON串// 将字典或者数组转化为JSON串   NSData *jsonData = [NSJSONSerialization dataWithJSONObject:array options:NSJSONWritingPrettyPrinted  error:nil]; //得到想要的JSON串NSString *jsonString = [[NSString alloc] initWithData:jsonData  encoding:

iOS NSDictionary、NSData、JSON等 数据类型相互转换

1.NSDictionary类型转换为NSData类型: NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: @"balance", @"key", @"remaining balance", @"label", @"45", @"value", @"USD", @"curre

NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转化

    在iOS  5 中,苹果引入了一个解析JSON串的NSJSONSerialization类. 通过该类,我们可以完成JSON数据与NSDictionary和NSArray之间的转化. 以前,我记得我用的是第三方的插件.但是,苹果出了这套解析后,效率也大大了超过了,所有的解析第三方类库.所以,推荐使用NSJSONSerialization类来完成转化. 一.将NSDictionary或NSArray转化为JSON串 // 将字典或者数组转化为JSON串 - (NSData *)toJSON

NSDictionary和NSArray打印中文出现乱码的解决方案

/* 新建一个分类,打印带中文的NSDictionary和NSArray就不会再出现乱码了: */ #import <Foundation/Foundation.h> @implementation NSDictionary (Log) -(NSString *)descriptionWithLocale:(id)locale { NSArray *allKeys = [self allKeys]; NSMutableString *str = [[NSMutableString alloc]

NSArray NSMutableArray &nbsp; NSNumber 方法

@font-face {  font-family: "宋体";}@font-face {  font-family: "宋体";}@font-face {  font-family: "@宋体";}@font-face {  font-family: "Cambria";}@font-face {  font-family: "Heiti SC Light";}@font-face {  font-fam