2015-10-08 1 views
0

J'ai un JSON-NSArray (créé avec NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers) ...), contenant quelques articles et que vous souhaitez enregistrer chaque élément dans comme un seul fichier sur mon disque local.Swift: Diviser chaque élément JSON-Array en un seul fichier

J'ai écrit la fonction suivante pour enregistrer un fichier JSON-local:

func writeLocalFileFromString(dataString dataString: String, path: String, filename: String, type: String) { 

    do { 
     try dataString.writeToFile("\(path)/\(filename).\(type)", atomically: true, encoding: NSUTF8StringEncoding) 
    } catch let error { 
     print(error) 
    } 

} 

J'ai donc essayé de jeter tous les JSON point as! String. Les fichiers sont créés et contiennent une belle chaîne, mais ils ne sont pas des fichiers JSON valides. Y a-t-il une meilleure façon de gérer cela?

Répondre

1

Vous bouclez et obtenez every item dans json NSDictionary, puis convertissez cet article json format. Au lieu de print comme le bloc de code ci-dessous, vous pouvez l'enregistrer dans un fichier comme vous le souhaitez.

let json = try! NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers) as! NSDictionary 

// loop to get item 
for (key, value) in json { 
    // data is a NSData contains your json string 
    let data = try! NSJSONSerialization.dataWithJSONObject([key, value], options: []) 
    // convert NSData to String, then do what you want 
    let string = String(data: data, encoding: NSUTF8StringEncoding) 
    print(string) 
} 
+0

Fonctionne comme un charme, merci! – ixany