gpt4 book ai didi

ios - Swift:NSJSONSerialization.JSONObjectWithData() 失败,JSON utf-8

转载 作者:行者123 更新时间:2023-11-28 12:55:56 33 4
gpt4 key购买 nike

我的 iOS 应用程序需要从 UTF-8 编码的 DBMS MySQL 下载一些数据,例如:

{"id":"1","id_fish":"5","description_info":"Come ricorda il nome, la colorazione del carapace di questo gambero \u00e9 rosa chiaro, che si fa pi\u00f9 intensa sul dorso. Il corpo \u00e8 leggermente compresso lateralmente e possiede 13 paia di zampe. Raggiunge la lunghezza di 18 cm. Si riproduce in primavere e autunno. ","recognition_info":"La forma del gambero rosa \u00e8 molto simile agli altri decapodi come gambero rosso e lo scampo. Si possono per\u00f2 facilmente differenziare in base alle dimensioni e al colore.","place_info":"Oceano Atlantico, tra Portogallo e Angola e tra Massachusetts e Guyana, e Mar Mediterraneo.","fishing_method":"Rete a strascico","buy_period":"Estate - Inverno"}

代码如下:

if let responseJSON: [[String: String]] = (try? NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions())) as? [[String: String]] {
completionHandler(success: responseJSON, error:nil)
}

else {
print("Error coding!")
}

如您所想,它总是显示“错误编码”,而如果下载的 JSON 只是 ASCII,则一切正常。我错过了什么?

print(NSString(data: data!, encoding: NSUTF8StringEncoding))得到的data的内容是:

Optional({"id":"1","id_fish":"5","description_info":"Come ricorda il nome, la colorazione del carapace di questo gambero \u00e9 rosa chiaro, che si fa pi\u00f9 intensa sul dorso. Il corpo \u00e8 leggermente compresso lateralmente e possiede 13 paia di zampe. Raggiunge la lunghezza di 18 cm. Si riproduce in primavere e autunno. ","recognition_info":"La forma del gambero rosa \u00e8 molto simile agli altri decapodi come gambero rosso e lo scampo. Si possono per\u00f2 facilmente differenziare in base alle dimensioni e al colore.","place_info":"Oceano Atlantico, tra Portogallo e Angola e tra Massachusetts e Guyana, e Mar Mediterraneo.","fishing_method":"Rete a strascico","buy_period":"Estate - Inverno"})

我在php文件中使用了utf8_encode()!

最佳答案

您的 JSON 对象是字典 [String: String] 而不是数组 [[String: String]]

我建议使用 do - catch block

do {
let responseJSON = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions()) as! [String: String]
completionHandler(success: responseJSON, error:nil)
} catch let error as NSError {
completionHandler(success: nil, error:error)
}

关于ios - Swift:NSJSONSerialization.JSONObjectWithData() 失败,JSON utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35037492/

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