iOS-JSON數(shù)據(jù)解格式

json數(shù)據(jù)解析

json的概念

JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式。
在實(shí)際開(kāi)發(fā)中經(jīng)常使用JSON來(lái)獲取服務(wù)器上的數(shù)據(jù),并通過(guò)解析json數(shù)據(jù)獲取我們想要的數(shù)據(jù)

iOS開(kāi)發(fā)使用 NSJSONSerialization(序列化)類(lèi)解析json數(shù)據(jù)
NSJSONSerialization提供了Json數(shù)據(jù)封包、Json數(shù)據(jù)解析

NSJSONSerialization將JSON數(shù)據(jù)轉(zhuǎn)換為NSDictionary或NSArray
解包方法,將NSDictionary、NSArray對(duì)象轉(zhuǎn)換為JSON數(shù)據(jù)(可以通過(guò)調(diào)用isValidJSONObject來(lái)判斷NSDictionary、NSArray對(duì)象是否可以轉(zhuǎn)換為JSON數(shù) 據(jù))封包

json數(shù)據(jù)封包

   NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",@"value3",@"key3", nil];

      // isValidJSONObject判斷對(duì)象是否可以構(gòu)建成json對(duì)象
      if ([NSJSONSerialization isValidJSONObject:dic]){
          NSError *error;

          // 創(chuàng)造一個(gè)json從Data, NSJSONWritingPrettyPrinted指定的JSON數(shù)據(jù)產(chǎn)的空白,使輸出更具可讀性。
          NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&error];

          NSString *json =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
          NSLog(@"json data:%@",json);
      }

json數(shù)據(jù)解析

  NSError *error;
  //加載一個(gè)NSURL對(duì)象
  NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.weather.com.cn/data/101120101.html"]];

  //將請(qǐng)求的url數(shù)據(jù)放到NSData對(duì)象中
  NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];  
  
//iOS自帶解析類(lèi)NSJSONSerialization從response中解析出數(shù)據(jù)放到字典中
  NSDictionary *weatherDic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];

  NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"];

  NSString *text = [NSString stringWithFormat:@"今天是 %@  %@  %@  的天氣狀況是:%@  %@ ",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"], [weatherInfo objectForKey:@"weather1"], [weatherInfo objectForKey:@"temp1"]];    NSLog(@"weatherInfo:%@", text );

json解析過(guò)程示例

  NSError *error;
//加載一個(gè)NSURL對(duì)象
NSURLRequest\*request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.weather.com.cn/data/101180601.html"]];

//將請(qǐng)求的url數(shù)據(jù)放到NSData對(duì)象中
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

//iOS自帶解析類(lèi)NSJSONSerialization從response中解析出數(shù)據(jù)放到字典中
NSDictionary *weatherDic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];

NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"];

txtView.text = [NSString stringWithFormat:@"今天是 %@ %@ %@ 的天氣狀況是:%@ %@ ",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"], [weatherInfo objectForKey:@"weather1"], [weatherInfo objectForKey:@"temp1"]];

NSLog(@"weatherInfo字典里面的內(nèi)容為---%@", weatherDic );
最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 我們大家平時(shí)在開(kāi)發(fā) App 的時(shí)候,相信接觸最多的就是 JSON 數(shù)據(jù)了。只要你的 App 有讀取網(wǎng)絡(luò)數(shù)據(jù)的功能,...
    SwiftCafe閱讀 1,649評(píng)論 2 18
  • JSON JSON和XML都是需要解析的 JSON是一種輕量級(jí)的數(shù)據(jù)格式,一般用于數(shù)據(jù)交互服務(wù)器返回給客戶端的數(shù)據(jù)...
    JonesCxy閱讀 2,008評(píng)論 2 10
  • 1.服務(wù)器返回的數(shù)據(jù): 對(duì)于服務(wù)器返回來(lái)的data,一般有兩種格式:JSON/XMLJSON:是民間的;XML:是...
    SoftKnife閱讀 622評(píng)論 0 5
  • JSON的簡(jiǎn)單介紹 1.什么是JSON(1)JSON是一種輕量級(jí)的數(shù)據(jù)格式,一般用于數(shù)據(jù)交互(2)服務(wù)器返回給客戶...
    Mario_ZJ閱讀 770評(píng)論 0 0
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,597評(píng)論 19 139

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