• IOS之网络数据下载和JSON解析


    IOS之网络数据下载和JSON解析

    简介

      在本文笔者将要给大家介绍IOS如何利用NSURLConnection从网络上下载数据,以及如何解析下载下来的JSSON数据格式,以及如何显示数据和图片的一部下载显示。

        涉及到的知识点:

      1.NSURLConnection异步下载和封装

      2.JSON格式和JSON格式解析

      3.数据显示和使用SDWebImage异步显示图片

    内容

    1.网络下载基础知识介绍

      什么是网络应用?

      网络应用程序是一种使用网页浏览器在互联网或企业内部网上操作的应用软件。是一种以网页语言(例如HTML、JavaScript、Java等编程语言)撰写的应用程序,需要通过浏览器来运行。

      网络应用的程序结构:c/s,b/s;

      常见的网络接口形式:以太网接口;

      常见的数据格式:jason,xml;

    2.NSURLConnection使用

      NSString同步下载数据......

    复制代码
    // HTTP中使用URL地址
        //  http:// 地址使用协议(ftp://)
        //  iappfree.candou.com  主机地址(域名和IP)
        //  :8080                   主机端口
        //  /free/applications/limited  网页程序文件路径
        //  ?currency=rmb&page=1&category_id= 程序参数(参数用&分割)
        
        NSString *urlString = @"http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&page=1&category_id=";
        
        //下载数据
        //通过地址生成NSURL对象
        NSError *error = nil;
        NSURL *url = [NSURL URLWithString:urlString];
        NSString *content = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
        if (error==nil) {
            NSLog(@"content = %@",content);
        }
        else
        {
            NSLog(@"下载失败");
        }
        
        //项目中怎么使用
        //1.同步形式下载, initWithContentsOfURL下载完了之后才会返回
        //      造成界面假死,不能用
        //2.使用异步下载(NSURLConnection异步下载)
    复制代码

    3.JSON解析

      可以通过系统提供的一个类NSJSONSerialization来完成,可以很方便的转为字典或者数组。范例代码如下。

    复制代码
    - (void)dealDownloadFinish:(NLHttpRequest *)request{
        
        NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:request.data options:NSJSONReadingMutableContainers error:nil];
        
        NSArray * dicts = [dict valueForKeyPath:@"list"];
        for (NSDictionary *dict in dicts) {
            NLEvent *event = [NLEvent eventWithDictionary:dict];
            [_modelArray addObject:event];
        }
        [_tableView reloadData];
    }
    复制代码

     

     

  • 相关阅读:
    JavaScript 相关记录
    首页大图淡入淡出效果工具flexslider
    取消chrome浏览器下input和textarea的默认样式;html5默认input内容清除“×”按钮去除办法
    Hibernate入门笔记
    Servlet入门笔记
    父容器利用opacity设置透明后,子元素跟着变透明的解决方案
    overflow:hidden与margin:0 auto之间的冲突
    初识Android Studio
    首页图片滚动效果
    DIV宽度设置成100%,浏览器窗口缩小后,右边出现留白
  • 原文地址:https://www.cnblogs.com/baconchen/p/4384593.html
Copyright © 2020-2023  润新知