JSON數(shù)據(jù)使用簡介

一督勺、JOSN簡介

JSON本質(zhì)上箱玷,就是一個(gè)"特殊格式"的字符串

XML

- JSON是網(wǎng)絡(luò)上用來傳輸數(shù)據(jù)使用最廣泛的數(shù)據(jù)格式,沒有之一

- JSON出身草根,是Javascript的子集盒卸,專門負(fù)責(zé)描述數(shù)據(jù)格式

- Javascript是做網(wǎng)頁開發(fā)使用的一種"腳本"語言

- Javascript & Java沒有任何關(guān)系吩翻!

參考網(wǎng)站://http://www.w3cschool.cc

二电媳、JSON語法規(guī)則

JSON的語法格式和OC中的快速包裝字典和數(shù)組的語法幾乎一樣蒙揣!

-數(shù)據(jù)以key/value值對(duì)表示

-數(shù)據(jù)由逗號(hào)分隔

-花括號(hào)保存對(duì)象

-方括號(hào)保存數(shù)組

三、JSON值

-數(shù)字(整數(shù)或浮點(diǎn)數(shù))

-字符串(在雙引號(hào)中)OC@"abc"json"abc"

-邏輯值(true或false)

-數(shù)組(在方括號(hào)中)

-對(duì)象(在花括號(hào)中)

- null

四眯杏、序列化&反序列化

-序列化:在向服務(wù)器發(fā)送數(shù)據(jù)之前夜焦,將NSArray / NSDictionary轉(zhuǎn)換成二進(jìn)制的過程

//主要關(guān)注反序列化!

-反序列化:在從服務(wù)器接收到數(shù)據(jù)之后,將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成NSArray / NSDictionary的過程

五岂贩、NSJSONSerialization類負(fù)責(zé)反序列化得工具類!

-專門負(fù)責(zé)在JSON和Foundation對(duì)象直接轉(zhuǎn)換的類

-可以轉(zhuǎn)換成JSON的Foundation對(duì)象需要具備以下條件:

-頂級(jí)節(jié)點(diǎn)是NSArray或者NSDictionary// 100%返回的數(shù)據(jù),根節(jié)點(diǎn)都是NSDictionary!

-所有的對(duì)象是NSString, NSNumber, NSArray, NSDictionary或者NSNull

-所有字典的key是NSString

- NSNumber不是空或者無窮大

json解析補(bǔ)充

- json和plist一樣都可以表示一段數(shù)據(jù)

- 解析區(qū)別

- plist 根據(jù)url 直接[nsarray arrayWithContentOfUrl ]可以直接變成數(shù)組

- json根據(jù)url

url -> NSData

NSData ? -> ?反序列化 - > 數(shù)組,字典

根據(jù)字典的[@“data”];這個(gè)key 取出里面的數(shù)據(jù)

遍歷,字典轉(zhuǎn)模型,定義可變數(shù)組存儲(chǔ)模型, .copy給全局屬性

代碼:

@implementationViewController {

NSArray *_personArr;

}

- (void)viewDidLoad {

[superviewDidLoad];

[selfloadData];

}

- (void)loadData {

// 1.url

NSURL*url = [[NSBundlemainBundle]URLForResource:@"persons.json"withExtension:nil];

// 2.將其轉(zhuǎn)為二進(jìn)制數(shù)據(jù)-> NSData

NSData*data = [NSDatadataWithContentsOfURL:url];

// 3.反序列化->轉(zhuǎn)為我們OC中能夠識(shí)別到的字典和數(shù)組!

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

// 4.寫入一個(gè)文件[隨便一個(gè)文件,方便分析數(shù)據(jù)結(jié)構(gòu)!] ->寫到mac的桌面上!

//方便我們查看文件的數(shù)據(jù)結(jié)構(gòu)!

[dictwriteToFile:@"/Users/HM/Desktop/person.plist"atomically:YES];

// 4.從所有數(shù)據(jù)中根據(jù)data key,取出數(shù)組

NSArray *arr = dict[@"data"];

NSMutableArray*arrM = [NSMutableArrayarray];

[arrenumerateObjectsUsingBlock:^(NSDictionary*_Nonnullobj,NSUIntegeridx,BOOL*_Nonnullstop) {

HMPerson*p = [[HMPersonalloc]init];

[psetValuesForKeysWithDictionary:obj];

[arrMaddObject:p];

}];

//賦值

_personArr= arrM.copy;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末茫经,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子萎津,更是在濱河造成了極大的恐慌卸伞,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锉屈,死亡現(xiàn)場離奇詭異荤傲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)颈渊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門遂黍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人俊嗽,你說我怎么就攤上這事雾家。” “怎么了绍豁?”我有些...
    開封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵芯咧,是天一觀的道長。 經(jīng)常有香客問我,道長敬飒,這世上最難降的妖魔是什么邪铲? 我笑而不...
    開封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮驶拱,結(jié)果婚禮上霜浴,老公的妹妹穿的比我還像新娘晶衷。我一直安慰自己蓝纲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開白布晌纫。 她就那樣靜靜地躺著税迷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锹漱。 梳的紋絲不亂的頭發(fā)上箭养,一...
    開封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音哥牍,去河邊找鬼毕泌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛嗅辣,可吹牛的內(nèi)容都是我干的撼泛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼澡谭,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼愿题!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蛙奖,我...
    開封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤潘酗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后雁仲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仔夺,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年攒砖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缸兔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡祭衩,死狀恐怖灶体,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情掐暮,我是刑警寧澤蝎抽,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響樟结,放射性物質(zhì)發(fā)生泄漏养交。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一瓢宦、第九天 我趴在偏房一處隱蔽的房頂上張望碎连。 院中可真熱鬧,春花似錦驮履、人聲如沸鱼辙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽倒戏。三九已至,卻和暖如春恐似,著一層夾襖步出監(jiān)牢的瞬間杜跷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來泰國打工矫夷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留葛闷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓双藕,卻偏偏與公主長得像淑趾,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蔓彩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • JSON JSON和XML都是需要解析的 JSON是一種輕量級(jí)的數(shù)據(jù)格式治笨,一般用于數(shù)據(jù)交互服務(wù)器返回給客戶端的數(shù)據(jù)...
    JonesCxy閱讀 1,857評(píng)論 2 10
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)赤嚼,斷路器旷赖,智...
    卡卡羅2017閱讀 134,665評(píng)論 18 139
  • iOS開發(fā)系列--網(wǎng)絡(luò)開發(fā) 概覽 大部分應(yīng)用程序都或多或少會(huì)牽扯到網(wǎng)絡(luò)開發(fā),例如說新浪微博更卒、微信等等孵,這些應(yīng)用本身可...
    lichengjin閱讀 3,661評(píng)論 2 7
  • 我們大家平時(shí)在開發(fā) App 的時(shí)候,相信接觸最多的就是 JSON 數(shù)據(jù)了蹂空。只要你的 App 有讀取網(wǎng)絡(luò)數(shù)據(jù)的功能俯萌,...
    SwiftCafe閱讀 1,592評(píng)論 2 18
  • 什么是純露咐熙?純露,又稱水精油(Hydrolat)辨萍,是指精油在蒸餾萃取過程中棋恼,在提煉精油時(shí)分離出來的一種100%飽和...
    秋楓映嵐閱讀 551評(píng)論 0 0