ios - Swift: NSJSONSerialization.JSONObjectWithData() fails with JSON utf-8 -


my ios app needs download data dbms mysql utf-8 encoded, example:

{"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 strascico","buy_period":"estate - inverno"} 

and here's code:

if let responsejson: [[string: string]] = (try? nsjsonserialization.jsonobjectwithdata(data!, options: nsjsonreadingoptions())) as? [[string: string]] {                 completionhandler(success: responsejson, error:nil)             }              else {                 print("error coding!")             } 

as can imagine, says "error coding" while if downloaded json ascii works well. missing?

the content of data print(nsstring(data: data!, encoding: nsutf8stringencoding)) is:

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 strascico","buy_period":"estate - inverno"}) 

i use utf8_encode() in php file!

your json object dictionary [string: string] rather array [[string: string]].

i recommend use do - catch block

do {    let responsejson = try nsjsonserialization.jsonobjectwithdata(data!, options: nsjsonreadingoptions()) as! [string: string]    completionhandler(success: responsejson, error:nil) } catch let error nserror {    completionhandler(success: nil, error:error) } 

Comments

Popular posts from this blog

php - Wordpress website dashboard page or post editor content is not showing but front end data is showing properly -

javascript - Get parameter of GET request -

javascript - Twitter Bootstrap - how to add some more margin between tooltip popup and element -