Swift-解析JSON数据(天气)

本文介绍了一个使用Swift编写的iOS应用示例,该应用能够从指定的API获取天气数据,并通过JSON解析显示城市名称、温度等信息。同时,文章还探讨了如何处理API返回的图片路径问题。

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

[objc]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. //  
  2. //  ViewController.swift  
  3. //  JieParseJson  
  4. //  
  5. //  Created by jiezhang on 14-10-5.  
  6. //  Copyright (c) 2014年 jiezhang. All rights reserved.  
  7. //  
  8.   
  9. import UIKit  
  10.   
  11. class ViewController: UIViewController {  
  12.                               
  13.     @IBOutlet weak var city: UILabel!  
  14.     @IBOutlet weak var cityid: UILabel!  
  15.     @IBOutlet weak var temp1: UILabel!  
  16.     @IBOutlet weak var temp2: UILabel!  
  17.     @IBOutlet weak var weather: UILabel!  
  18.     @IBOutlet weak var img1: UILabel!  
  19.     @IBOutlet weak var img2: UILabel!  
  20.     @IBOutlet weak var ptime: UILabel!  
  21.       
  22.       
  23.     override func viewDidLoad() {  
  24.         super.viewDidLoad()  
  25.     }  
  26.   
  27.     override func didReceiveMemoryWarning() {  
  28.         super.didReceiveMemoryWarning()  
  29.           
  30.     }  
  31.       
  32.     func getWeather()  
  33.     {  
  34.         var url = NSURL(string: "http://www.weather.com.cn/data/cityinfo/101010100.html")  
  35.         var data = NSData(contentsOfURL: url)  
  36.         var str = NSString(data: data, encoding: NSUTF8StringEncoding)  
  37.         println(str)  
  38.         var json : AnyObject! = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: nil)  
  39.         let weatherinfo: AnyObject = json.objectForKey("weatherinfo")!  
  40.         city.text = weatherinfo.objectForKey("city") as String  
  41.         cityid.text = weatherinfo.objectForKey("cityid") as String  
  42.         temp1.text = weatherinfo.objectForKey("temp1") as String  
  43.         temp2.text = weatherinfo.objectForKey("temp2") as String  
  44.         weather.text = weatherinfo.objectForKey("weather") as String  
  45.         img1.text = weatherinfo.objectForKey("img1") as String  
  46.         img2.text = weatherinfo.objectForKey("img2") as String  
  47.         ptime.text = weatherinfo.objectForKey("ptime") as String  
  48.     }  
  49.   
  50.     @IBAction func updateWeather(sender: AnyObject) {  
  51.         getWeather()  
  52.     }  
  53. }  


当时想显示图片来,但是返回的图片是假的,我查看了页面,<big class="jpg80 n01"></big>在css里面是这样的

big.jpg80{background-image:url(../../i/weather2014/jpg/gray80.jpg);height:80px;width:80px}.on big.jpg30{background-image:url(../../i/weather2014/jpg/white30.jpg);height:30px;width:31px}.on big.jpg50{background-image:url(../../i/weather2014/jpg/blue50.jpg);height:50px;width:50px}.on big.jpg80{background-image:url(../../i/weather2014/jpg/blue80.jpg);height:80px;width:80px}.sk big.jpg80{background-image:url(../../i/weather2014/jpg/blue80.jpg);height:80px;width:80px}

所以真实地址:http://i.tq121.com.cn/i/weather2014/jpg/blue80.jpg,打开后是一组图片,像下面的,在网站上看到的都是用css切割出来的。

20141017160103306.jpg

20141017151721893.png


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值