字典轉(zhuǎn)JSON字符串

OS 系統(tǒng)API---NSJSONSerialization四個(gè)枚舉什么意思

(2014-06-09 14:49:19)

源自:http://www.cocoachina.com/bbs/read.php?tid=110907

NSJSONReadingMutableContainers:返回可變?nèi)萜?,NSMutableDictionary或NSMutableArray。

NSJSONReadingMutableLeaves:返回的JSON對(duì)象中字符串的值為NSMutableString,目前在iOS 7上測(cè)試不好用,應(yīng)該是個(gè)bug,參見:

http://stackoverflow.com/questions/19345864/nsjsonreadingmutableleaves-option-is-not-working

NSJSONReadingAllowFragments:允許JSON字符串最外層既不是NSArray也不是NSDictionary,但必須是有效的JSON Fragment。例如使用這個(gè)選項(xiàng)可以解析 @“123” 這樣的字符串。參見:

http://stackoverflow.com/questions/16961025/nsjsonserialization-nsjsonreadingallowfragments-reading

NSJSONWritingPrettyPrinted:的意思是將生成的json數(shù)據(jù)格式化輸出,這樣可讀性高,不設(shè)置則輸出的json字符串就是一整行。


NSDictionary*dict =@{@"name":@"Jack",@"age":@"18",@"class":@"english"};

//現(xiàn)將字段轉(zhuǎn)成Json格式二進(jìn)制

NSData*JsonData = [NSJSONSerializationdataWithJSONObject:dictoptions:NSJSONWritingPrettyPrintederror:nil];

//將二進(jìn)制格式的Json串通過序列化Encoding轉(zhuǎn)化為Json形式的字符串

NSString*dictStr = [[NSStringalloc]initWithData:JsonDataencoding:NSUTF8StringEncoding];

那么,如果是json字符串轉(zhuǎn)字典呢

//先拿到Json字符串,通過序列化轉(zhuǎn)為二進(jìn)制

NSData*data = [dictStr dataUsingEncoding:NSUTF8StringEncoding];

//這一步就很簡(jiǎn)單了,直接用蘋果那一套,但有一點(diǎn)要注意的是,在這兩種互轉(zhuǎn)的過程中,options的選項(xiàng)是不同的,一個(gè)是NSJSONWritingPrettyPrintederror,另一個(gè)是NSJSONReadingMutableContainerserror。

NSDictionary*dicts = [NSJSONSerializationJSONObjectWithData:dataoptions:NSJSONReadingMutableContainerserror:nil];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容