zoukankan      html  css  js  c++  java
  • 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];
    }
    复制代码

     

     

  • 相关阅读:
    Java.io.outputstream.PrintStream:打印流
    Codeforces 732F. Tourist Reform (Tarjan缩点)
    退役了
    POJ 3281 Dining (最大流)
    Light oj 1233
    Light oj 1125
    HDU 5521 Meeting (最短路)
    Light oj 1095
    Light oj 1044
    HDU 3549 Flow Problem (dinic模版 && isap模版)
  • 原文地址:https://www.cnblogs.com/baconchen/p/4384593.html
Copyright © 2011-2022 走看看