iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 15
0
Mobile Development

小菜逼學習IOS系列 第 15

如何使用Swift將Json保存/寫入文件-倒數16天

  • 分享至 

  • xImage
  •  

今天要展示兩種方法,您可以使用兩種方法使用Swift將JSON數據/字符串寫入文件。

將JSON字符串保存到文件

保存JSON字符串與保存任何其他類型的字符串相同。由於Swift會將其視為String對象,因此我們可以使用write(to:)內置的方法String。

我們要做的第一件事是創建一個模擬程序jsonString,我們將在上面的代碼以及Save JSON Data下面的部分中使用它。

有了JSON字符串後,我們需要獲取文檔目錄的路徑。我們通過使用FileManager.default.urls上面的代碼來做到這一點。URL返回數組中的第一個是我們想要的。

現在我們有了文檔目錄的url,我們需要獲取文件路徑pathWithFileName。為此,我們將文件名附加到文檔目錄路徑上。在這種情況下,我將調用文件myJsonString.json。

最後,我們需要寫入文件。String有一個稱為的內置方法write(to:)。這將允許我們寫的價值jsonString來pathWithFilename。write(to:)期望的第一個參數是pathWithFilename,接下來需要我們指定它是否應該是原子的(這與並發性有關),最後我們傳遞要使用的編碼。

如果一切正常,我們將把jsonString內容寫到文件中!

let jsonString = "{\"location\": \"the moon\"}"

if let documentDirectory = FileManager.default.urls(for: .documentDirectory,
                                                    in: .userDomainMask).first {
    let pathWithFilename = documentDirectory.appendingPathComponent("myJsonString.json")
    do {
        try jsonString.write(to: pathWithFilename,
                             atomically: true,
                             encoding: .utf8)
    } catch {
        // Handle error
    }
}

將JSON數據保存到文件

保存JSON數據與保存普通數據完全相同。Data有一個稱為的內置方法write。實際上,保存數據和保存字符串非常相似。

這是我們可以保存數據的方式(注意:jsonString以上部分正在使用中):

if let jsonData = jsonString.data(using: .utf8),
    let documentDirectory = FileManager.default.urls(for: .documentDirectory,
                                                     in: .userDomainMask).first {
    let pathWithFileName = documentDirectory.appendingPathComponent("myJsonData")
    do {
        try jsonData.write(to: pathWithFileName)
    } catch {
        // handle error
    }
}

在第一行中,我們將JSON字符串轉換jsonString為數據。String有一個內置方法,可讓我們將其轉換為Data。

接下來,我們獲得文檔目錄。為此,我們使用 FileManager.default.urls。這將返回一個數組,我們只需要數組中的第一項。

現在我們有了文檔目錄,我們將創建一個名為的常量pathWithFileName。我們將使用此文件名將文件名附加到documentDirectory。我已經叫這個文件了myJsonData。

最後,我們可以保存文件。Data有一個稱為的內置方法write(to:)。此方法以a URL作為參數。我們將傳入pathWithFileNameURL作為URL,因為它代表了我們要寫入的文件的完整路徑。

現在,您應該能夠將JSON數據寫入文件


上一篇
swift 推播通知(2)-倒數17天
下一篇
監聽範圍,進入離開推播(1)-倒數16天
系列文
小菜逼學習IOS30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言