zoukankan      html  css  js  c++  java
  • IOS数据解析之JSON

    JSON解析

    *注  如何将Json数据传到服务器

        // 提交json字符串到服务器
        // 1.创建字典
        NSDictionary *dic = @{
            @"username":@"test",
            @"password":@[@"test1",@"test2"]
        };
        // 2.系统把对象(NSArray,NSDic)转化为json字符串
        NSData *data = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];
        NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

    1)JSONKit (MRC)

    1>导入JSONKit库

    2>修改ARC   build phase ->compile sources ->选择文件双击添加 -fno-objc-arc

    3>解析

    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) {
            
            // 使用JSONKit 进行json数据解析
            NSDictionary *dic = [data objectFromJSONData];
    }];

    2)系统自带类

     [NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]] queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
            // 系统自带类解析
            NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
    }];

    3) JSONModel 

    注意点:

     ItemModel.h

    1.#import "JSONModel.h"

    2.@interface ItemModel : JSONModel

       NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
            
            NSDictionary *dictJSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
            //取出字典里的applications数组
            NSArray *applications = [dictJSON objectForKey:@"applications"];
            for (NSDictionary *dict in applications) {
            // ItemModel继承自JSONModel,只需定义属性
                ItemModel *ietm = [[ItemModel alloc] initWithDictionary:dict error:nil];
                
                NSLog(@"%@
    
    
    ",ietm.toJSONString);
            }
        }];

    结果

  • 相关阅读:
    emulate sh
    postmaster.c 中的 ListenAddresses
    PostgreSQL的postmaster的fork动作验证
    NotifyMyFrontEnd 函数背后的数据缓冲区(三)
    对${ZSH_VERSION+set}的验证
    微软正准备一个简易的Rootkit清除方案 助用户打补丁 狼人:
    创新与安全:云计算的两只跷跷板 狼人:
    苹果禁止iPhone黑客访问App Store应用商店 狼人:
    春节不回家 单身留守族“拼饭”“拼玩” 狼人:
    僵尸侵入全球 袭击者或为东欧黑帮 狼人:
  • 原文地址:https://www.cnblogs.com/3WWanXiang/p/4905453.html
Copyright © 2011-2022 走看看