JSONKit解析

本文介绍了一个iOS应用中如何使用NSURLConnection发起异步HTTP请求获取JSON数据,并利用JSONKit进行解析的过程。此外,还展示了如何将本地NSDictionary对象转换为JSON格式字符串以便于网络传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#import "ViewController.h"
#import "JSONKit.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    NSString *urlString = @"https://api.douban.com/v2/book/search?q=s";
    
    [NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]] queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        
        //json解析
        NSDictionary *dic = [data objectFromJSONData];
        
#if 0
        NSString *string ;
        
        //json解析
        [string objectFromJSONString];
#endif
        
        NSLog(@"%@",dic[@"total"]);
    }];
    
    /*
     username : "test"
     password : "xxx"
     other : {"key1":"value1","key2":["test","test2"]}
     */
    
    NSDictionary *dic = @{
        @"key1":@"value1",
        @"key2":@[@"test",@"test2"]
    };
    
    //提交到服务器的是json字符串
    //系统把对象(NSArray,NSDic)转化为json字符串
    NSData *data = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];
    NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    
    /*
     TestString:NSString
     
     TestString *s;
     */
    
    //判断string是否是NSString类或者其子类
    if ([string isKindOfClass:[NSString class]])
    {
        NSLog(@"YES");
    }
    
    //判断string是否是NSString类。不包括子类
    [string isMemberOfClass:[NSString class]];
    
    NSLog(@"--- %@",string);
    
    
#if 0
    /*
     在运行的时候和编译的时候data3是什么类型;
     编译是NSData;
     运行是NSString
     */
    NSData *data3 = [[NSString alloc] init];
    
    [data3 isEqualToData:[NSData data]];
#endif
    
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值