2016-11-29 134 views
0

我堅持試圖從核心數據y的數據保存到一個JSON文件創建一個JSON文件。從核心數據

誰能給大約要做到這一點的最佳方式提示?也許是一個教程。

謝謝。

編輯:我想我的存儲數據,JSON文件應用程序目錄。所以後者我可以將它導出到iCloud中。我找不到太多關於創建一個JSON文件......奇怪的是,用於讀取JSON文件,我發現很多....

+0

您有什麼問題?關於使用CoreData或特別是JSON文件保存實體的問題?您可以將它保存爲(NS)數據,(NS)字符串(如果需要),或者將其保存在驅動器中,並存儲路徑。 – Larme

+0

我編輯我的問題的問題是關於與數據 –

+0

JSON文件中創建一個JSON文件只是一個文件。你可以用(NS)數據或(NS)字符串方法保存它,然後正確讀取它。查看'writeToFile:atomically:'(來自'NSData'),或'writeToFile:atomically:encoding:error:'(來自'NSString')。 – Larme

回答

1

看起來這會,如果他們是一個很大的麻煩,將文件存儲在JSON已經保存在CoreData中,尤其是因爲如果您使用的是Cloudkit,您將不會以JSON格式上傳文件。我想你可以完成你首先要創建一個字典你的對象想什麼,雖然:

let messageDic = ["message": "Hello Motto"] 

,然後序列化字典中JSON:

do { 
     let messageData = try JSONSerialization.data(withJSONObject: messageDic, options: .prettyPrinted) 

    } catch { 
      print("error with serialization") 
    } 
0

我使用這一點,在我的項目。這個函數返回json字符串格式化的數據,這些數據很容易保存到coredata中。上面的方法也是正確的,但是這個方法產生json格式化的字符串文件,很容易保存到coredata中。希望它能爲你工作。

func convertAnyobjectToJSON(anyObject: AnyObject) -> JSON{ 
     let jsonData = try! JSONSerialization.data(withJSONObject: anyObject, options: JSONSerialization.WritingOptions.prettyPrinted) 
     let jsonString = NSString(data: jsonData, encoding: String.Encoding.utf8.rawValue)! as String 
     if let dataFromString = jsonString.data(using: String.Encoding.utf8, allowLossyConversion: false) { 
      let json = JSON(data: dataFromString) 
      return json 
     } 
     return nil 
    }