iOS 之NSJSONReadingOptions說明【轉】


首先用代碼來說明NSJSONReadingMutableContainers的作用:

 1     NSString *str = @"{\"name\":\"kaixuan_166\"}";
 2     
 3     NSMutableDictionary *dict = [NSJSONSerialization JSONObjectWithData:[str dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];
 4     // 應用崩潰,不選用NSJSONReadingOptions,則返回的對象是不可變的,NSDictionary
 5     [dict setObject:@"male" forKey:@"sex"];
 6     
 7     NSMutableDictionary *dict = [NSJSONSerialization JSONObjectWithData:[str dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:nil];
 8     // 沒問題,使用NSJSONReadingMutableContainers,則返回的對象是可變的,NSMutableDictionary
 9     [dict setObject:@"male" forKey:@"sex"];
10     
11     NSLog(@"%@", dict);

NSJSONReadingMutableContainers:返回可變容器,NSMutableDictionary或NSMutableArray。 
 
NSJSONReadingMutableLeaves:返回的JSON對象中字符串的值為NSMutableString,目前在iOS 7上測試不好用,應該是個bug,參見: 
http://stackoverflow.com/questions/19345864/nsjsonreadingmutableleaves-option-is-not-working 
 
NSJSONReadingAllowFragments:允許JSON字符串最外層既不是NSArray也不是NSDictionary,但必須是有效的JSON Fragment。例如使用這個選項可以解析 @“123” 這樣的字符串。參見: 
http://stackoverflow.com/questions/16961025/nsjsonserialization-nsjsonreadingallowfragments-reading 

 

轉自:http://www.cocoachina.com/bbs/read.php?tid=110907#959188


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM