在iOS開發(fā)中,常常需要從網(wǎng)絡(luò)獲取數(shù)據(jù)并解析為JSON格式文件。JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,常用于前后端數(shù)據(jù)交互。下面介紹iOS中解析JSON格式文件的方法。
// 定義JSON數(shù)據(jù) NSString *jsonString = @"{'name':'apple', 'color':'red', 'price':5.0}"; // 將JSON字符串轉(zhuǎn)為NSData NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; // 解析JSON數(shù)據(jù)至字典 NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil]; // 輸出解析結(jié)果 NSLog(@"%@", jsonDict);
如上,首先將JSON格式的字符串轉(zhuǎn)為NSData類型,然后使用NSJSONSerialization類的類方法JSONObjectWithData將NSData解析為NSDictionary。其中,NSJSONReadingMutableContainers參數(shù)表示返回的字典屬性可變。
除了解析單個(gè)對(duì)象外,也可以解析JSON數(shù)據(jù)中的數(shù)組。例如,下面定義了一個(gè)JSON數(shù)組并解析為NSArray:
// 定義JSON數(shù)組 NSString *jsonArrayString = @"[{'name':'apple', 'color':'red', 'price':5.0}, {'name':'banana', 'color':'yellow', 'price':3.0}]"; // 將JSON數(shù)組字符串轉(zhuǎn)為NSData NSData *jsonArrayData = [jsonArrayString dataUsingEncoding:NSUTF8StringEncoding]; // 解析JSON數(shù)據(jù)至數(shù)組 NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:jsonArrayData options:NSJSONReadingMutableContainers error:nil]; // 輸出解析結(jié)果 NSLog(@"%@", jsonArray);
如上,使用與解析對(duì)象相似的方法進(jìn)行數(shù)組的解析。運(yùn)行代碼后,可以看到控制臺(tái)輸出已解析的JSON數(shù)據(jù)。