JSON解析之解析本地文件

解析思路


1.获取数据来源,就是文件的保存路径 NSString *path。调用方法:pathForResource

2.读取文件数据,把path转换成NSData *data。调用方法:[NSData dataWtihContentsOffFile:path];

3.解析文件数据(获取key对应的value),接收原则:{}使用字典;[]使用数组。调用方法:[NSJSONSerialization JSONObjectWithData:]

DOMO


解析文件  test.json

{

"FeelsLikeC" : 5,

"temp_c" : "3",

"request" : [ { "query" : "Beijing,China" }  ]

}


ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

//数据来源(test.json)

//读取文件数据

NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"test.json" ofType:nil];

NSData *jsonData = [NSData dataWithContentsOfFile:jsonPath];

//解析(获取key对应的value)

//接收原则:{}使用字典;[]使用数组

NSError *error = nil;

NSDictionary *jsonDic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];

//体感温度

NSNumber *feelsTemp = jsonDic[@"FeelsLikeC"];

//预报天气的温度

NSString *temp = jsonDic[@"temp_c"];

//城市名字

NSArray *requestArray = jsonDic[@"request"];

NSDictionary *queryDic = requestArray[0];

NSString *cityStr = queryDic[@"query"];

//验证

NSLog(@"feelsTemp:%@; temp:%@; cityStr:%@", feelsTemp, temp, cityStr);

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、iOS 4种JSON数据解析方法详解 2013年09月10日⁄ 综合⁄ 共 9124字⁄ 字号小中大⁄评论关闭...
    lilinjianshu阅读 6,335评论 0 2
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,311评论 30 472
  • 面向对象三大支柱封装:就是把相关的数据和代码结合成一个有机的整体,形成数据和操作代码的封装体,对外只提供一个可以控...
    WangDavid阅读 5,678评论 0 2
  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666阅读 5,299评论 0 6
  • 一分钟目标:想真正让自己过目不忘的目标,要简短而且要精炼,能够抓住自己的眼球,随时都可以提醒自己。 一分钟称赞:上...
    芙蓉卷阅读 1,241评论 0 0