let string = String(data: (Data(base64Encoded:((data?.value(forKey: "14112017") as! NSArray)[0] as! NSDictionary)["data"] as! String)!), encoding: .utf8)!
答案 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包含字典作为顶级对象,而不是数组。)