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