IOS开发 JSON 数据转化成 Arrays 或者 Dictionaries

转自:http://blog.csdn.net/developer_zhang/article/details/8921677

通过将字典或者数组转化成json数据,然后打印出来

#import "TestDemo.h"

@implementation TestDemo

-(void)convseFromJson
{
    
    //字典
    NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
    [dictionary setValue:@"Anthony" forKey:@"First Name"];
    [dictionary setValue:@"Robbins" forKey:@"Last Name"];
    [dictionary setValue:[NSNumber numberWithUnsignedInteger:51] forKey:@"Age"];
    NSArray *arrayOfAnthonysChildren = [[NSArray alloc] initWithObjects:
                                        @"Anthony's Son 1",
                                        @"Anthony's Daughter 1",
                                        @"Anthony's Son 2",
                                        @"Anthony's Son 3",
                                        @"Anthony's Daughter 2", nil];
    [dictionary setValue:arrayOfAnthonysChildren forKey:@"children"];

//数组
//    NSMutableArray *dictionary = [NSMutableArray arrayWithObjects:@"sww",@"123",@"chjt",@"hund",@"syn", nil];
    
    NSError *error = nil;
    NSData *jsonData = [NSJSONSerialization
                        dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:&error];
    if ([jsonData length] > 0 && error == nil){
        NSLog(@"Successfully serialized the dictionary into data.");
        /* Json转数组/字典 */
        error = nil;
        //转换方法
        id jsonObject = [NSJSONSerialization
                         JSONObjectWithData:jsonData options:NSJSONReadingAllowFragments
                         error:&error];
        if (jsonObject != nil && error == nil){
            NSLog(@"Successfully deserialized...");
            //如果jsonObject是字典类
            if ([jsonObject isKindOfClass:[NSDictionary class]]){
                NSDictionary *deserializedDictionary = (NSDictionary *)jsonObject;
                NSLog(@"Dersialized JSON Dictionary = %@", deserializedDictionary);
            }
            //如果jsonObject是数组类
            else if ([jsonObject isKindOfClass:[NSArray class]]){
                NSArray *deserializedArray = (NSArray *)jsonObject;
                NSLog(@"Dersialized JSON Array = %@", deserializedArray);
            } else {
                NSLog(@"I can't deal with it");
            }
        }
        else if (error != nil){
            NSLog(@"An error happened while deserializing the JSON data."); }
    }
    else if ([jsonData length] == 0 &&error == nil){
        NSLog(@"No data was returned after serialization.");
    }
    else if (error != nil){
        NSLog(@"An error happened = %@", error);
    }
}
@end

输出打印结果:

1.json数据是字典

2015-08-02 16:02:16.046 FromJsonTest[1478:188561] Dersialized JSON Dictionary = {

    Age = 51;

    "First Name" = Anthony;

    "Last Name" = Robbins;

    children =     (

        "Anthony's Son 1",

        "Anthony's Daughter 1",

        "Anthony's Son 2",

        "Anthony's Son 3",

        "Anthony's Daughter 2"

    );

}

2. json数据是数组

2015-08-02 16:08:47.193 FromJsonTest[1494:194307] Dersialized JSON Array = (

    sww,

    123,

    chjt,

    hund,

    syn

)


从打印出的数据可以看出字典一般以{}结尾,而数组一般以()结尾。

demo下载地址:点击打开链接


你可能感兴趣的:(IOS开发 JSON 数据转化成 Arrays 或者 Dictionaries)