//my.h
#ifndef __1_Header_h
#define __1_Header_h
#define DEBUG 1
#define aa 1

#ifdef aa
#ifdef DEBUG
#define NSLog(FORMAT, ...) fprintf(stderr,"%s\n",[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define NSLog(...)
#endif
#endif

#ifdef bb
#ifdef DEBUG
#define NSLog(FORMAT, ...) fprintf(stderr,"%s:%d\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define NSLog(...)
#endif
#endif

#endif
//main.m

/*
 {"desc":"OK","status":1000,"data":{"wendu":"25","ganmao":"虽然温度适宜但风力较大,仍较易发生感冒,体质较弱的朋友请注意适当防护。","forecast":[{"fengxiang":"南风","fengli":"4-5级","high":"高温 27℃","type":"晴","low":"低温 20℃","date":"8日星期二"},{"fengxiang":"东南风","fengli":"4-5级","high":"高温 26℃","type":"多云","low":"低温 19℃","date":"9日星期三"},{"fengxiang":"北风","fengli":"4-5级","high":"高温 26℃","type":"晴","low":"低温 18℃","date":"10日星期四"},{"fengxiang":"东北风","fengli":"4-5级","high":"高温 24℃","type":"阴","low":"低温 17℃","date":"11日星期五"},{"fengxiang":"北风","fengli":"4-5级","high":"高温 26℃","type":"多云","low":"低温 19℃","date":"12日星期六"}],"yesterday":{"fl":"4-5级","fx":"西北风","high":"高温 27℃","type":"晴","low":"低温 20℃","date":"7日星期一"},"aqi":"83","city":"大连"}}
     通过城市id获得天气数据,json数据
    http://wthrcdn.etouch.cn/weather_mini?citykey=101070201
 
*/
/*
 //1.创建url地址
 //2.将url数据转换成二进制数据
 //3.将二进制数据转换成对应的字典或者数组
 //4.各种类型转化
 */

#import <Foundation/Foundation.h>
#import "Weather.h"
#import "Data.h"
#import "Foreast.h"
#import "Yesterday.h"
#import "Manager.h"
#import "my.h"

#define PATH @"http://wthrcdn.etouch.cn/weather_mini?citykey=101070201"

int main(int argc, const char * argv[]) {
    @autoreleasepool {

NSURL *url = [[NSURL alloc] initWithString:PATH];
        NSData *data1 = [[NSData alloc] initWithContentsOfURL:url];
        NSDictionary *dictory = [NSJSONSerialization JSONObjectWithData:data1 options:1 error:nil];
        
        Weather *weather = [Weather new];
        Data *data = [Data new];
        Foreast *foreast = [Foreast new];
        Yesterday *yesterday = [Yesterday new];
        weather.date = data;
        data.forecast = foreast;
        data.yesterday = yesterday;
        
        weather.desc = dictory[@"desc"];
        weather.status = dictory[@"status"];
        
        data.wendu = dictory[@"data"][@"wendu"];
        data.ganmao = dictory[@"data"][@"ganmao"];
        data.aqi = dictory[@"data"][@"aqi"];
        data.city = dictory[@"data"][@"city"];
        
        NSArray *array=dictory[@"data"][@"forecast"];
        for (NSDictionary *subDict in array)
        {
            Manager *manager = [Manager new];
            manager.fengxiang = subDict[@"fengxiang"];
            manager.fengli = subDict[@"fengli"];
            manager.high = subDict[@"high"];
            manager.type = subDict[@"type"];
            manager.low = subDict[@"low"];
            manager.date = subDict[@"date"];
            [foreast.marray addObject:manager];
        }
        for (Manager *user in foreast.marray) {
            NSLog(@"fengxiang:%@,fengli:%@,high:%@,type:%@,low:%@,date:%@\n",user.fengxiang,user.fengli,user.high,user.type,user.low,user.date);
        }

NSDictionary *diction1 = dictory[@"data"][@"yesterday"];
        Manager *manager = [Manager new];
        manager.fl1 = diction1[@"fl"];
        manager.fx1 = diction1[@"fx"];
        manager.high1 = diction1[@"high"];
        manager.type1 = diction1[@"type"];
        manager.low1 = diction1[@"low"];
        manager.date1 = diction1[@"date"];
        [yesterday.marray addObject:manager];
        for (Manager *user in yesterday.marray) {
            NSLog(@"fl:%@,fx:%@,high:%@,type:%@,low:%@,date:%@\n",user.fl1,user.fx1,user.high1,user.type1,user.low1,user.date1);
        }
        //NSLog(@"%@",yesterday);
        
        NSLog(@"%@",weather);
    }
    return 0;
}
//Manager.h

//
//  Manager.h
//  homework
//
//  Created by hehe on 15/9/8.
//  Copyright (c) 2015年 wang.hehe. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Manager : NSObject
@property (nonatomic,strong) NSString * fengxiang;
@property (nonatomic,strong) NSString * fengli;
@property (nonatomic,strong) NSString * high;
@property (nonatomic,strong) NSString * type;
@property (nonatomic,strong) NSString * low;
@property (nonatomic,strong) NSString * date;

@property (nonatomic,strong) NSString * fl1;
@property (nonatomic,strong) NSString * fx1;
@property (nonatomic,strong) NSString * high1;
@property (nonatomic,strong) NSString * type1;
@property (nonatomic,strong) NSString * low1;
@property (nonatomic,strong) NSString * date1;
@end
//Manager.m

//
//  Manager.m
//  homework
//
//  Created by hehe on 15/9/8.
//  Copyright (c) 2015年 wang.hehe. All rights reserved.
//

#import "Manager.h"

@implementation Manager
-(NSString *)description
{
    return [NSString stringWithFormat:@"fengxiang=%@,fengli=%@,high=%@,type=%@,low=%@,date=%@",self.fengxiang,self.fengli,self.high,self.type,self.low,self.date];
}
@end
//Weather.h

//
//  Weather.h
//  homework
//
//  Created by hehe on 15/9/8.
//  Copyright (c) 2015年 wang.hehe. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Data.h"

@interface Weather : NSObject
@property (nonatomic,strong) NSString * desc;
@property (nonatomic,strong) NSString * status;
@property (nonatomic,strong) Data * date;
@end
//Weather.m

//
//  Weather.m
//  homework
//
//  Created by hehe on 15/9/8.
//  Copyright (c) 2015年 wang.hehe. All rights reserved.
//

#import "Weather.h"

@implementation Weather
- (NSString *)description
{
    return [NSString stringWithFormat:@"desc=%@,status=%@,\ndata:%@",self.desc,self.status,self.date];
}
@end
//Yesterday.h

//
//  Yesterday.h
//  homework
//
//  Created by hehe on 15/9/8.
//  Copyright (c) 2015年 wang.hehe. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Yesterday : NSObject
@property (nonatomic,strong) NSMutableArray * marray;
- (instancetype)init;
@end
//Yesterday.m

//
//  Yesterday.m
//  homework
//
//  Created by hehe on 15/9/8.
//  Copyright (c) 2015年 wang.hehe. All rights reserved.
//

#import "Yesterday.h"

@implementation Yesterday
- (instancetype)init
{
    if (self = [super init])
    {
        _marray = [[NSMutableArray alloc]init];
    }
    return self;
}

//-(NSString *)description
//{
//    return _marray;
//}
@end
//Foreast.h

//
//  Foreast.h
//  homework
//
//  Created by hehe on 15/9/8.
//  Copyright (c) 2015年 wang.hehe. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Foreast : NSObject
@property (nonatomic,strong) NSMutableArray * marray;
- (instancetype)init;
@end
//Foreast.m

//
//  Foreast.m
//  homework
//
//  Created by hehe on 15/9/8.
//  Copyright (c) 2015年 wang.hehe. All rights reserved.
//

#import "Foreast.h"

@implementation Foreast
- (instancetype)init
{
    if (self = [super init])
    {
        _marray = [[NSMutableArray alloc]init];
    }
    return self;
}

@end
//文件格式

{
    "desc": "OK",
    "status": 1000,
    "data":
    {
        "wendu": "25",
        "ganmao": "虽然温度适宜但风力较大,仍较易发生感冒,体质较弱的朋友请注意适当防护。",
        "forecast": [
                     {
                         "fengxiang": "南风",
                         "fengli": "4-5级",
                         "high": "高温 27℃",
                         "type": "晴",
                         "low": "低温 20℃",
                         "date": "8日星期二"
                     },
                     {
                         "fengxiang": "东南风",
                         "fengli": "4-5级",
                         "high": "高温 26℃",
                         "type": "多云",
                         "low": "低温 19℃",
                         "date": "9日星期三"
                     },
                     {
                         "fengxiang": "北风",
                         "fengli": "4-5级",
                         "high": "高温 26℃",
                         "type": "晴",
                         "low": "低温 18℃",
                         "date": "10日星期四"
                     },
                     {
                         "fengxiang": "东北风",
                         "fengli": "4-5级",
                         "high": "高温 24℃",
                         "type": "阴",
                         "low": "低温 17℃",
                         "date": "11日星期五"
                     },
                     {
                         "fengxiang": "北风",
                         "fengli": "4-5级",
                         "high": "高温 26℃",
                         "type": "多云",
                         "low": "低温 19℃",
                         "date": "12日星期六"
                     }
                     ],
        "yesterday":
        {
            "fl": "4-5级",
            "fx": "西北风",
            "high": "高温 27℃",
            "type": "晴",
            "low": "低温 20℃",
            "date": "7日星期一"
        },
        "aqi": "83",
        "city": "大连"
    }
}

JSON解析保存在类中的更多相关文章

  1. java 写一个JSON解析的工具类

    上面是一个标准的json的响应内容截图,第一个红圈”per_page”是一个json对象,我们可以根据”per_page”来找到对应值是3,而第二个红圈“data”是一个JSON数组,而不是对象,不能 ...

  2. java前端传入的json字符串保存到表中的方法

    表 service_goods_base 字段如下: 传入的json 字符串: servicePictureArray  :  [{"picServiceUrl": "h ...

  3. JSON.net 在实体类中自定义日期的格式

    定义日期格式转换类,其继承 IsoDateTimeConverter,代码如下: public class DateTimeConverter : IsoDateTimeConverter { pub ...

  4. C#字符串数组排序 C#排序算法大全 C#字符串比较方法 一个.NET通用JSON解析/构建类的实现(c#) C#处理Json文件 asp.net使用Jquery+iframe传值问题

    C#字符串数组排序   //排序只带字符的数组,不带数字的 private   string[]   aa   ={ "a ", "c ", "b & ...

  5. flink---实时项目--day02-----1. 解析参数工具类 2. Flink工具类封装 3. 日志采集架构图 4. 测流输出 5. 将kafka中数据写入HDFS 6 KafkaProducer的使用 7 练习

    1. 解析参数工具类(ParameterTool) 该类提供了从不同数据源读取和解析程序参数的简单实用方法,其解析args时,只能支持单只参数. 用来解析main方法传入参数的工具类 public c ...

  6. 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

      先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...

  7. 一个.NET通用JSON解析/构建类的实现(c#)转

    转自:http://www.cnblogs.com/xfrog/archive/2010/04/07/1706754.html NET通用JSON解析/构建类的实现(c#) 在.NET Framewo ...

  8. IOS中Json解析的四种方法

    作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验 ...

  9. 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

    摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...

随机推荐

  1. Oracle DataGuard搭建(二)

    三.配置备库 创建catalog数据库 用dbca创建数据库,用oracle自带模板,不用em,启用归档,同一管理密码oracle,global name:dbcat1.node249.gewara, ...

  2. tomcat启动很慢的原因

    启动后tomcat显示的代码如下: 2014-4-3 10:50:15 org.apache.catalina.core.AprLifecycleListener init 信息: The APR b ...

  3. Android学习笔记之百度地图

    步行路线搜索及RouteOverlay 方式与驾车路线搜索类似,只需将mMKSearch.drivingSearch(null, start, null, end)修改为mMKSearch.walki ...

  4. vim中taglist使用

    转载:http://www.cnblogs.com/mo-beifeng/archive/2011/11/22/2259356.html 本节所用命令的帮助入口: :help helptags :he ...

  5. [iOS 10 day by day] Day 1:开发 iMessage 的第三方插件

    本文介绍了 iOS 10 的一个重要更新:Messages 应用支持第三方插件了.作者用一个小游戏作为例子,说明了插件开发从建工程开始,到绘制界面.收发消息的全过程. <iOS 10 day b ...

  6. myeclipse2014 安装maven3.3.9和mave配置本地仓库

    昨天晚上发现eclipse下一个aptana JS的编辑插件,就想装到myeclipse下,结果悲剧了,myeclipse每次启动都闪退,虽然最后解决了,但是myeclipse里面的自带插件不知少了好 ...

  7. Android进阶笔记15:ListView篇之图片优化

    1.图片异步加载: (1)处理图片的方式: 如果ListView中自定义的Item中有涉及到大量图片的,一定要对图片进行细心的处理,因为图片占的内存是 ListView 项中最头疼的,处理图片的方法大 ...

  8. Android进阶笔记07:Android之MVC 理解

     1. 为什么需要MVC ? 软件中最核心的,最基本的东西是什么?  答:是的,是数据.我们写的所有代码,都是围绕数据的.      围绕着数据的产生.修改等变化,出现了业务逻辑.      围绕着数 ...

  9. 网络编程(发送get和post请求到服务器端,并获取响应)

    一:B/S结构,浏览器端到服务器端通信依赖http协议 交互过程: 1:在浏览器地址栏输入http://ip:port/应用/资源路径 2:浏览器根据ip和服务器建立连接,port确定和那个应用进行交 ...

  10. HDU 3085 Nightmare Ⅱ (双向BFS)

    Nightmare Ⅱ Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...