【问题标题】:Creating a json file from Core Data从 Core Data 创建一个 json 文件
【发布时间】:2016-11-29 16:13:17
【问题描述】:

我一直在尝试将核心数据中的 y 数据保存到 json 文件中。

任何人都可以提供有关执行此操作的最佳方法的提示吗?也许是一个教程。

谢谢。

编辑:我想将我的数据存储在 app 目录中的 json 文件中。所以后者我可以将它导出到 iCloud 中。我找不到太多关于创建 json 文件的信息……奇怪的是,我发现很多读取 json 文件的内容……

【问题讨论】:

  • 您有什么问题?您的问题是关于使用 CoreData 保存实体还是特别是 JSON 文件?您可以根据需要将其保存为 (NS)Data、(NS)String,或者将其保存在驱动器中,然后只存储路径。
  • 我编辑了我的问题问题是关于使用数据创建一个 json 文件
  • JSON 文件只是一个文件。您可以使用 (NS)Data 或 (NS)String 方法保存它,然后正确读取它。查看writeToFile:atomically:(来自NSData)或writeToFile:atomically:encoding:error:(来自NSString)。
  • 好的。但可以说我的数据(coredata)中有图像、字符串和双精度数。我可以使用 writetoFile:atomically 将所有内容存储在文件 (json) 中吗? (之后我想重新加载它)

标签: json swift core-data swift3


【解决方案1】:

如果文件已经保存在 CoreData 中,那么以 JSON 格式存储文件似乎会很麻烦,特别是因为如果您使用 Cloudkit,您将不会上传 JSON 格式的文件。我认为你可以通过首先为你的对象创建一个字典来完成你想要的:

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

然后用 JSON 序列化字典:

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

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

【讨论】:

    【解决方案2】:

    我在我的项目中使用它。此函数返回 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
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      相关资源
      最近更新 更多