gpt4 book ai didi

arrays - Swift NSDictionary JSON 数组到字符串转换耗时

转载 作者:行者123 更新时间:2023-11-28 08:23:26 25 4
gpt4 key购买 nike

我正在将 NSDictionary 转换为字符串并将其存储在 SQLite 数据库中,然后再次从数据库中检索并将字符串转换为 NSDictionary,方法是使用以下两种方法{在本段下方的代码中提到}。但是如果我们将多个字典存储在一个 SQLite 数据库表中,则需要花费大量时间来转换两种方式{数组到字符串,反之亦然}。是否有任何解决方案可以在更短的时间内将完整的 NSArray 或完整的 NSDictionary 转换为字符串,反之亦然?

    func jsonDictionary(jsonData:NSDictionary)-> String
    {
        
        var error : NSError?
        
        let jsonData = try! NSJSONSerialization.dataWithJSONObject(jsonData, options: NSJSONWritingOptions.PrettyPrinted)
        
        let jsonString = NSString(data: jsonData, encoding: NSUTF8StringEncoding)! as String

        return jsonString
        
    }
func convertStringToDictionary(text: String) -> NSDictionary {
        var json=text
        json = json.stringByReplacingOccurrencesOfString("\n", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
//        json = json.stringByReplacingOccurrencesOfString(" ", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
        print(json)
        
        var jsonDictData=NSDictionary()
        if let data = json.dataUsingEncoding(NSUTF8StringEncoding) {
            do {
                var jsonDict: NSDictionary? = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? NSDictionary
                jsonDictData=jsonDict?.mutableCopy()as! NSMutableDictionary
                print(jsonDictData)
                
            }
            catch
            {
                
            }
        }
        return jsonDictData
    }

最佳答案

您不需要将 JSON 数据转换为字符串,当然也不应该处理 JSON 字符串本身。

要将字典保存为 JSON,只需将字典转换为 JSON 数据,然后保存数据:

let jsonData = try NSJSONSerialization.dataWithJSONObject(yourDictionary, options: [])
// save `jsonData` in your SQL

jsonData 是您的 JSON 数据。这是你需要保存的。没有别的。

您可以通过将其保存为 blob(一大块数据)而不是 String 来将其保存在 SQL 表中。

然后取回:

let jsonData = // get the blob from SQL
if let json = try? NSJSONSerialization.JSONObjectWithData(jsonData, options: []),
let dict = json as? [String: AnyObject]
{
// here `dict` is your dictionary converted from JSON data
}

看到了吗?无需将 JSON 数据与字符串相互转换。

最后的建议:不要使用 NSDictionary 和 NSArray。相反,请使用 Swift 数组和 Swift 字典。它更容易、更安全。

关于arrays - Swift NSDictionary JSON 数组到字符串转换耗时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40721078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com