Swift将NSMutableArray以字符串格式转换为NSMutableArray

时间:2017-11-17 01:03:44

标签: ios arrays swift nsmutablearray

嘿大家所以我创建一个NSMutableArray将它发送到我的mysql服务器将其转换为base64,然后当app读取数据时,它将base64代码解码为字符串格式。现在我试图将字符串转换回NSMutableArray。我似乎无法让它工作继承人将代码转换为字符串。

let string = String(data: (Data(base64Encoded:((data?.value(forKey: "14112017") as! NSArray)[0] as! NSDictionary)["data"] as! String)!), encoding: .utf8)!

2 个答案:

答案 0 :(得分:0)

所以我的问题的答案最终将我的数组转换为JSONstring,我首先使用:

let jsonData: Data? = try? JSONSerialization.data(withJSONObject: UniversalArray)
let jsonString = String(data: jsonData!, encoding: .utf8)

然后当它再检索时我收回了我的jsonString,但它有" \"我替换使用:

let cleanJsonString = myData.replacingOccurrences(of: "\\", with: "")

然后最终完成它我只是将这个cleanJsonString发送到这个函数:

func convertToDictionary(text: String) -> Any? {

    if let data = text.data(using: .utf8) {
        do {
            return try JSONSerialization.jsonObject(with: data, options: [])
        } catch {
            print(error.localizedDescription)
        }
    }

    return nil

}

调用此函数时我使用了这个:

 let array = convertToDictionary(text: myMutableArray) as? [AnyObject]

感谢大家的支持,这是我创造的这个虚假混乱的答案。

答案 1 :(得分:0)

这有两个部分:序列化数组以传输到服务器,然后从服务器反序列化。

我们需要先查看用于序列化数组的代码。 (将其转换为字符串的代码。)根据您发布的内容,它似乎是JSON格式。如果是这样,您可以跳过base64编码步骤,具体取决于您对数据执行的操作。 JSON是传输到远程服务器的良好格式。在传输之前,您通常不会对JSON进行base64编码。

如果您正在接收base64编码的JSON,那么您需要将其解码回数据,然后使用JSONSerializer类将JSON转换回数组或字典之类的对象:

let data = Data(base64Encoded: base64DataFromServer)
guard let object = try? JSONSerialization.jsonObject(with: data) else {
  return nil
}

(请注意,您发布的JSON包含字典作为顶级对象,而不是数组。)