ios如何解析json

1,JSON是什么

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。易于人閱讀和編寫。同時也易于機器解析和生成。

JSON建構于兩種結構:

“名稱/值”對的集合(A collection of name/value pairs)。

不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。

值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)。

這些都是常見的數據結構。事實上大部分現代計算機語言都以某種形式支持它們。這使得一種數據格式在同樣基于這些結構的編程語言之間交換成為可能。

JSON具有以下這些形式:


{

? "firstName": "John",

? "lastName": "Smith",

? "isAlive": true,

? "age": 27,

? "address": {

? ? "streetAddress": "21 2nd Street",

? ? "city": "New York",

? ? "state": "NY",

? ? "postalCode": "10021-3100"

? },

? "phoneNumbers": [

? ? {

? ? ? "type": "home",

? ? ? "number": "212 555-1234"

? ? },

? ? {

? ? ? "type": "office",

? ? ? "number": "646 555-4567"

? ? },

? ? {

? ? ? "type": "mobile",

? ? ? "number": "123 456-7890"

? ? }

? ],

? "children": [],

? "spouse": null

}

總之,json廣泛應用于多種語言之間的交互,如今所有語言都支持json格式,廣泛用于通過Internet發送數據。JSON格式包括字典和數組。

ios如何讀json

1

打開Xcode并創建一個新的Single View應用程序。


2

IOSJSONTutorial,然后使用您的常規值填寫組織名稱和組織標識符。輸入Swift作為語言,然后選擇Next。

3

轉到? 故事板。將4個標簽添加到故事板。根據以下屏幕截圖定位和命名標簽。

4

打開Assistant Editor并確保ViewController.swift文件可見。按住Ctrl鍵并從右側日期標簽拖動到ViewController類并創建以下Outlet。

?5

按Ctrl +從右側時間標簽拖動到ViewController類并創建以下Outlet。

JSONTest.com是一個利用JavaScript Object Notation(JSON)的服務測試平臺。在這種情況下,我們使用日期服務。這將返回當前日期和時間。



1,首先你需要創建一個結構,該結構將保存從JSON對象中檢索的日期和時間值。


struct JSONTest: Codable {

? ? let date: String

? ? let time: String

}


2,修改viewDidLoad方法

override func viewDidLoad() {

? ? super.viewDidLoad()

? ? // 1 url解析地址

? ? let urlString = "http://date.jsontest.com"

? ? guard let url = URL(string: urlString) else { return }


? ? // 2 該dataTask(配:completionHandler :)方法創建在URL中檢索內容的任務

? ? URLSession.shared.dataTask(with: url) { (data, response, error) in

? ? ? ? if error != nil {

? ? ? ? ? ? print(error!.localizedDescription)

? ? ? ? }

? ? ? ? guard let data = data else { return }

? ? ? ? do {

? ? ? ? ? ? // 3

? ? ? ? ? ? //對JSON對象的解碼

? ? ? ? ? ? let JSONData = try JSONDecoder().decode(JSONTest.self, from: data)

? ? ? ? ? ? // 4

? ? ? ? ? ? //JSON對象的日期和時間值將分配給標簽

? ? ? ? ? ? DispatchQueue.main.async {

? ? ? ? ? ? ? ? self.dateLabel.text = JSONData.date

? ? ? ? ? ? ? ? self.timeLabel.text = JSONData.time

? ? ? ? ? ? }

? ? ? ? } catch let jsonError {

? ? ? ? ? ? print(jsonError)

? ? ? ? }

? ? ? ? // 5 恢復方法開始web請求。

? ? ? ? }.resume()

}


結果如下:

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 概述 摘要:用JSON和工具欄做一個分析白宮請愿書的app 概念:JSON,NSData,UITabBarCont...
    lbhw閱讀 417評論 0 1
  • 雖然我現在不知道你是誰 是干什么的 是什么性格什么長相的人 但是我依然寫給你 那個在不久將來給我幸福的人 我或許不...
    為靑?閱讀 468評論 0 1
  • 愛是饒恕; 愛是祝福; 愛是包容; 愛是謙卑; 愛是擔當; 愛是舍己; 愛是誠實; 愛是忍耐; 愛是扶持; 愛是感...
    paulxqf閱讀 302評論 0 0
  • 正當華東、華南的臺風“溫比亞”來勢洶洶,暴雨強勁的時候,西南大后方貴州卻沉侵在一片祥和之中,爽爽的貴陽天朗氣...
    千小潯閱讀 124評論 0 0
  • 本文作者平著豐富的想象力和獨特的創造力,根據四季的特點為一年四季畫出了四個不同顏色的太陽,給世界萬物帶來各種美好,...
    軒小豆閱讀 117評論 0 0