当前位置:编程学习 > JS >>

IOS开发(75)之把 JSON 数据转化成 Arrays 或者 Dictionaries

1 前言
通过 NSJSONSerialization 这个类的 JSONObjectWithData:options:error:方法来实现,把JSON 数据解析出来放在数据或者字典里面保存。


2 代码示例
TestDemo.m

 

[plain]
-(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"]; 
    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); 
    } 

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

补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,