iOS 中 JSON 資料交換格式,iosjson

來源:互聯網
上載者:User

iOS 中 JSON 資料交換格式,iosjson

     JSON (JavaScript Object Notation)是一種輕量級的資料交換格式。JSON 的具體教程,可以參見 JSON 中國:http://www.json.org.cn/index.htm ,當然還有 JSON 線上校正格式化工具:http://www.bejson.com/ ,希望深入學習 JSON 可以參考其他教程。JSON 的輕量級是相對於 XML 文檔結構而言的,描述項目字元少,所以描述相同的資料所需的字元個數要少,當然傳輸的速度就會提高而流量也會減少。

     像微博,對於微博服務端資料很多就是 JSON ,需要對這些請求回來的資料進行本地解析;因為 Web 和移動平台開發對流量要求要儘可能的少,對速度要求又要比較快,所以 JSON 就成為理想的資料交換語言。

     把資料寫成 JSON 結構過程稱為“編碼”過程,即是寫入過程。把資料從 JSON 文檔中讀取處理的過程稱為“解碼”過程,即是解析和讀取過程。

     下面列舉一些 JSON 常用的解析架構:

     (1)SBJson

     (2)TouchJSON

     (3)YAJL ,基於SBJson,裡面進行了最佳化,底層 API 使用 C 編寫,上層 API 是 objective-c 編寫,使用者可以有多不同的選擇。它不支援 ARC ,源碼:http://lloyd.github.com/yajl/

     (4)JSONKit

     (5)NextiveJson ,此架構不支援 ARC ,源碼:http://github.com/nextive/NextiveJson

     (6)NSJSONSerialization ,從這個架構的命名規則來看,想你也猜到了它是蘋果自家的 JSON 解析架構,它是 iOS5 之後提出來的。

     具體的簡單一實例也是可以參考這篇部落格:http://blog.csdn.net/enuola/article/details/7903632/ 有些方法在 iOS7 以後的版本中會有警告,把它修改為 iOS7 以後支援的方法便可。

     下面來實現一個利用 NSJSONSerialization 來進行解析的簡單實現,當然也是可以用第三方架構,下載源碼,安裝,如果不支援 ARC 配置便可。直接在 viewDidLoad 方法中進行解析

- (void)viewDidLoad{    [super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.    self.navigationItem.leftBarButtonItem = self.editButtonItem;        self.detailViewController = (DetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];        [[NSNotificationCenter defaultCenter] addObserver:self                                             selector:@selector(reloadView:)                                                 name:@"reloadViewNotification"                                               object:nil];        NotesNextiveJsonParser *parser = [NotesNextiveJsonParser new];    //開始解析    [parser start];    NSString* path = [[NSBundle mainBundle] pathForResource:@"Test" ofType:@"json"];  //解析一個叫 Test.json 的檔案    NSData *jsonData = [[NSData alloc] initWithContentsOfFile:path];        NSError *error;        id jsonObj = [NSJSONSerialization JSONObjectWithData:jsonData                                                 options:NSJSONReadingMutableContainers error:&error];    if (!jsonObj || error) {        NSLog(@"JSON解碼失敗");    }    self.listData = [jsonObj objectForKey:@"Record"];    }
     

    如有不對,還望指點!




JSON資料格式是這樣的:

JSON是一種輕量級資料交換格式。json簡單說就是js中的對象和數組,所以這兩種結構就是對象和數組2種結構,你用的資料格式就是對象和數組的複合結構。
你的樣本JSON資料是名/值對,其中只有一個"wegInstLt"的變數名,值是包含一個條目的數組。假設var info={"wegInstLt":[{"billTypeCode":"0","channelId":530,"channelKind":"03","isHaveBillDate":"0","isHavePayAmount":"0","isLeePay":"0","isPrePay":"1","wiliCode":"1238","wiliItem":"00","wiliName":"哈爾濱市自來水公司","wltiId":10345}]}; 要獲得"哈爾濱市自來水公司"可以這樣寫:
info.wegInstLt[0].wiliName
希望可以幫到你,祝你生活愉快!
 
JSON是幹什用的?輕量級的資料交換格式?

摘自百度百科

JSON建構有兩種結構:
json簡單說就是javascript中的對象和數組,所以這兩種結構就是對象和數組2種結構,通過這兩種結構可以表示各種複雜的結構
1、對象:對象在js中表示為“{}”擴起來的內容,資料結構為
{key:value,key:value,...}的索引值對的結構,在物件導向的語言中,key為對象的屬性,value為對應的屬性值,所以很容易理
解,取值方法為 對象.key 擷取屬性值,這個屬性值的類型可以是 數字、字串、數組、對象幾種。
2、數組:數組在js中是中括弧“[]”擴起來的內容,資料結構為 ["java","javascript","vb",...],取值方式和所有語言中一樣,使用索引擷取,欄位值的類型可以是 數字、字串、數組、對象幾種。
經過對象、數組2種結構就可以組合成複雜的資料結構了。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.