簡體   English   中英

在 Swift 中將保存日期的字典轉換為 JSON

[英]Converting a Dictionary holding dates to JSON in Swift

我有一個相當大且復雜的NSManagedObject ,我在我的應用程序中對其進行操作並作為 JSON 發送回服務器。 我的計划是在我的應用程序中做我需要做的事情,將對象轉換為字典,然后在調用NSJSONSerialization.dataWithJSONObject后發送它(我也嘗試過使用SwiftyJSON ,我認為它或多或少是一樣的事物)。 這一切都很好,直到我需要包含一些日期。

基本上我見過的所有文檔都說序列化適用於特定的對象類型列表,其中不包括NSDate 可悲的是,我需要一些約會。 我應該注意,我正在使用字典字典,這些字典的日期可能分散在樹的上下,所以如果我遞歸地將它們全部轉換為字符串,我將不得不進行大量復制NSMutable字典。 肯定有更簡單的方法嗎? 我對 Swift 和 iOS 開發有點陌生,我不禁覺得我做錯了什么,或者我只是缺少這個問題的內置解決方案。 我不能成為第一個想要將日期作為 JSON 發回的人。 任何幫助將非常感激。

謝謝,亞歷克斯

Apple NSJSONSerialization Class Reference說;

您可以使用 NSJSONSerialization 類將 JSON 轉換為 Foundation 對象並將 Foundation 對象轉換為 JSON。

可以轉換為 JSON 的對象必須具有以下屬性:

頂級對象是 NSArray 或 NSDictionary。

所有對象都是 NSString、NSNumber、NSArray、NSDictionary 或 NSNull 的實例。

所有字典鍵都是 NSString 的實例。

數字不是 NaN 或無窮大。

其他規則可能適用。 調用isValidJSONObject:或嘗試轉換是判斷給定對象是否可以轉換為 JSON 數據的權威方法。

我認為您應該將日期轉換為字符串並將它們添加到您的字典中。 但它說; 其他規則可能適用。 調用isValidJSONObject:嘗試使用您的 NSDate 對象創建一個字典,如果返回 true 則調用 isValidJSONObject 應該可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM