借助和风天气API成功获取到了我想要的天气信息,但在怎么提取出我想要的数据上又遇到了问题。

{"HeWeather data service 3.0":[{"basic":{"city":"余姚","cnty":"中国","id":"CN101210404","lat":"29.948000","lon":"121.172000","update":{"loc":"2016-02-06 14:58","utc":"2016-02-06 06:58"}},"daily_forecast":[{"astro":{"sr":"06:42","ss":"17:36"},"cond":{"code_d":"101","code_n":"100","txt_d":"多云","txt_n":"晴"},"date":"2016-02-06","hum":"44","pcpn":"0.0","pop":"2","pres":"1030","tmp":{"max":"6","min":"-2"},"vis":"10","wind":{"deg":"324","dir":"西北风","sc":"3-4","spd":"12"}},{"astro":{"sr":"06:41","ss":"17:36"},"cond":{"code_d":"100","code_n":"100","txt_d":"晴","txt_n":"晴"},"date":"2016-02-07","hum":"31","pcpn":"0.0","pop":"0","pres":"1024","tmp":{"max":"9","min":"-2"},"vis":"10","wind":{"deg":"282","dir":"西北风","sc":"3-4","spd":"12"}},{"astro":{"sr":"06:41","ss":"17:37"},"cond":{"code_d":"100","code_n":"100","txt_d":"晴","txt_n":"晴"},"date":"2016-02-08","hum":"32","pcpn":"0.0","pop":"0","pres":"1024","tmp":{"max":"14","min":"1"},"vis":"10","wind":{"deg":"274","dir":"西风","sc":"微风","spd":"6"}},{"astro":{"sr":"06:40","ss":"17:38"},"cond":{"code_d":"100","code_n":"100","txt_d":"晴","txt_n":"晴"},"date":"2016-02-09","hum":"30","pcpn":"0.0","pop":"0","pres":"1023","tmp":{"max":"16","min":"6"},"vis":"10","wind":{"deg":"95","dir":"南风","sc":"3-4","spd":"12"}},{"astro":{"sr":"06:39","ss":"17:39"},"cond":{"code_d":"101","code_n":"101","txt_d":"多云","txt_n":"多云"},"date":"2016-02-10","hum":"51","pcpn":"0.0","pop":"0","pres":"1020","tmp":{"max":"18","min":"8"},"vis":"10","wind":{"deg":"167","dir":"东南风","sc":"3-4","spd":"10"}},{"astro":{"sr":"06:38","ss":"17:40"},"cond":{"code_d":"300","code_n":"101","txt_d":"阵雨","txt_n":"多云"},"date":"2016-02-11","hum":"60","pcpn":"0.3","pop":"51","pres":"1015","tmp":{"max":"19","min":"10"},"vis":"10","wind":{"deg":"177","dir":"南风","sc":"微风","spd":"9"}},{"astro":{"sr":"06:38","ss":"17:40"},"cond":{"code_d":"101","code_n":"101","txt_d":"多云","txt_n":"多云"},"date":"2016-02-12","hum":"54","pcpn":"7.0","pop":"50","pres":"1010","tmp":{"max":"20","min":"11"},"vis":"10","wind":{"deg":"241","dir":"南风","sc":"3-4","spd":"11"}}],"hourly_forecast":[{"date":"2016-02-06 16:00","hum":"46","pop":"1","pres":"1030","tmp":"5","wind":{"deg":"326","dir":"西北风","sc":"3-4","spd":"26"}},{"date":"2016-02-06 19:00","hum":"50","pop":"0","pres":"1031","tmp":"3","wind":{"deg":"325","dir":"西北风","sc":"3-4","spd":"19"}},{"date":"2016-02-06 22:00","hum":"55","pop":"0","pres":"1031","tmp":"2","wind":{"deg":"308","dir":"西北风","sc":"微风","spd":"14"}}],"now":{"cond":{"code":"101","txt":"多云"},"fl":"3","hum":"54","pcpn":"0","pres":"1029","tmp":"3","vis":"6","wind":{"deg":"330","dir":"西风","sc":"5-6","spd":"30"}},"status":"ok","suggestion":{"comf":{"brf":"较不舒适","txt":"白天天气晴好,但仍会使您感觉偏冷,不很舒适,请注意适时添加衣物,以防感冒。"},"cw":{"brf":"较适宜","txt":"较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。"},"drsg":{"brf":"冷","txt":"天气冷,建议着棉服、羽绒服、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣、冬大衣或厚羽绒服。"},"flu":{"brf":"易发","txt":"昼夜温差很大,易发生感冒,请注意适当增减衣服,加强自我防护避免感冒。"},"sport":{"brf":"较不宜","txt":"天气较好,但考虑天气寒冷,风力较强,推荐您进行室内运动,若户外运动请注意保暖并做好准备活动。"},"trav":{"brf":"一般","txt":"天空状况还是比较好的,但温度稍微有点低,且风稍大,会让您感觉些许凉意。外出请注意防风。"},"uv":{"brf":"最弱","txt":"属弱紫外线辐射天气,无需特别防护。若长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。"}}}]}

  这串JSON和我以前学习JSON解析时的完全不一样,字典和数组一层套一层,看得头都晕了。还好有JSON在线视图查看器,导入后可以清晰的看到层次结构:

  现在就好办多了,只要一层层地把数据剥出来就OK

NSArray *preData = dict[ @"HeWeather data service 3.0" ];
];
NSDictionary *basic = weatherData[@"basic" ];
NSArray *dailyForecast = weatherData[@"daily_forecast" ];
NSDictionary *now = weatherData[@"now" ];
 

简单天气应用开发——解析HeWeather JSON的更多相关文章

  1. IOS开发--解析复杂json数据

    json的自我介绍:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅 ...

  2. 简单天气应用开发——API接口

    寒假回家无事,想到自学iOS开发已有一段时间,还没做过真正自己的应用,就起了做一个天气预报App的念头. 想到就做.天气预报第一步自然是找到好用的API接口来获取天气信息.在百度上搜索了一圈,找到的都 ...

  3. 简单天气应用开发——自定义TableView

    顺利解析JSON数据后,天气数据已经可以随意提取了,现在要做的就是建立一个简单的UI. 实况信息较为简单,几个Lable就可以解决.主要是七天天气预报有点麻烦,那是一个由七个字典构成的数组,需要提取出 ...

  4. iOS开发网络篇—JSON数据的解析

    iOS开发网络篇—JSON数据的解析 iOS开发网络篇—JSON介绍 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式 ...

  5. 简单快速的让你的json解析速度快上加快

    背景 最近小编在做公司的一个需求.要求是把系统内的一些大型文本文件上传到第三方那里,而且第三方要求的交互数据的方式是采用post请求发送json串的形式进行的. 问题 做到中途才发现问题,由于单个文本 ...

  6. 5分钟让你学会用最高效的工具解析所有Json

    如果你是一个Android开发工程师,学会解析Json字符串是你的必修课,本篇文章主要以实例的方式手把手教你怎么做,花五分钟时间阅读本篇文章你就可以学会解析所有的Json字符串啦. 准备: json字 ...

  7. 基于Django进行简单的微信开发

    代码地址如下:http://www.demodashi.com/demo/11756.html 一.微信公众号的准备: 1. 注册 访问地址:https://mp.weixin.qq.com/ 按照提 ...

  8. 最强常用开发库总结 - JSON库详解

    最强常用开发库总结 - JSON库详解 JSON应用非常广泛,对于Java常用的JSON库要完全掌握.@pdai JSON简介 JSON是什么 JSON 指的是 JavaScript 对象表示法(Ja ...

  9. fastjson解析任意json

    fastjson解析任意json到bean 解析案例的代码 package com.base.config; import java.util.List; import com.alibaba.fas ...

随机推荐

  1. 车间任务不允许"每个装配件"超过100000

    应用 Oracle Work in   Progress 层 Level Function 函数名 Funcgtion Name WIP_WIPMRMDF 表单名 Form Name WIPMRMDF ...

  2. Silverlight第三方控件专题

    原文http://www.cnblogs.com/nasa/archive/2008/12/01/1344927.html 这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏 ...

  3. ios jsbrige

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  4. C++编程学习52个经典网站 强力推荐

    C/C++是最主要的编程语言.这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码.这份清单提供了源代码的链接以及它们的小说明.我已尽力包括最佳的C/C++源代码的网站.这不是一个完整的清 ...

  5. java 多线程学习笔记

    这篇文章主要是个人的学习笔记,是以例子来驱动的,加深自己对多线程的理解. 一:实现多线程的两种方法 1.继承Thread class MyThread1 extends Thread{ public ...

  6. Day4_代码重用与函数

    知识点速记: 重用代码的方法:脚本包含require().include(); 全局配置文件php.ini(auto_prepend_file/auto_append_file); 目录配置文件.ht ...

  7. BeanUtils\DBUtils

    BeanUtil: 需要导入 beanutil包和logging日志包 用于给对象属性赋值. setProperty与copyProperty区别: 这个问题搁置,还不会. 将map数据拷贝到对象中, ...

  8. iOS开发基本须要

        iOS开发基本须要 1 准备好对应的硬件和软件配置------基于Intel处理器的Mac操作系统 2 具有C++,Java或其它面向对象编程语言的开发经验 3 最新的iphone SDK的下 ...

  9. iOS深入学习 (Block全面分析)

    本文翻译自苹果的文档,有删减,也有添加自己的理解部分. 如果有Block语法不懂的,可以参考fuckingblocksyntax,里面对于Block 为了方便对比,下面的代码我假设是写在ViewCon ...

  10. 自学JQuery Mobile的几个例子

    JQuery Mobile是一个用于构建移动Web应用程序的框架,适用于主流的移动设备(智能手机.平板电脑),该框架利用了HTML5和CSS3技术减少了额外的脚本文件的编写.具体JQuery Mobi ...