在iOS開發中,解析JSON數據是一個非常常見的需求。然而,有時我們會發現,在解析JSON數據后,無法在應用程序中正常顯示數據。
這個問題通常有兩個常見的原因:
// 第一個原因:JSON數據解析錯誤 NSError *error = nil; id jsonData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error]; if (error) { NSLog(@"JSON數據解析錯誤:%@", error.localizedDescription); return; } // 第二個原因:數據無法正確映射到模型中 // 略
如果我們發現JSON數據解析錯誤,需要仔細檢查JSON數據的格式。通常情況下,JSON數據格式有以下幾種常見的格式:
- 鍵值對格式:
{ "name": "張三", "age": 18 }
[ {"name": "張三", "age": 18}, {"name": "李四", "age": 20} ]
{ "name": "張三", "age": 18, "friends": [ {"name": "李四", "age": 20}, {"name": "王五", "age": 21} ] }
如果JSON數據格式沒有問題,那么就有可能是數據無法正確映射到模型中。此時,我們需要檢查模型屬性的命名是否與JSON數據中的key一致。
@interface Person : NSObject @property (nonatomic, copy) NSString *name; @property (nonatomic, assign) NSInteger age; @end Person *person = [[Person alloc] init]; person.name = jsonData[@"name"]; // 不正確 person.age = [jsonData[@"age"] integerValue]; // 不正確 Person *person = [[Person alloc] initWithDictionary:jsonData]; // 正確
以上就是關于iOS解析JSON數據無法顯示的兩種常見原因以及對應解決方法的介紹。
上一篇css 左邊菜單欄