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


你可能感兴趣的:(JSON解析之解析本地文件)