Ecrire dans un fichier JSON local
Bonjour tous le mondes et bonne fête a vous de noël,
Je vous sollicite pour une question je cherche a écrire dans un fichier JSON local.
Les informations json son récupérer avec Alamofire et je les écris dans un fichier JSON.
pour cela je fait cette manipe mais j'ai toujours une erreur de ce type :
Value of type '[[String : AnyObject]]' has no member 'write'
mon code :
func loadListOfJson() {
Alamofire.request("http://serveur/api/json_list.php")
.validate()
.responseJSON { (response) in
if response.result.isSuccess {
self._personList = response.result.value as! [[String : AnyObject]]
print("List:", self._personList)
let pathToFile = Bundle.main.path(forResource: "text", ofType: "json")
print(pathToFile!)// là j'ai mon fichier json qui apparais dans le console.
erreur est là ---> self._personList.write(to: pathToFile, atomically: false, encoding: String.Encoding.utf8)
// je récupérer mon JSON et l'écris dans mon fichier text.json
//Et là je lie mon fichier test.json
if let path = pathToFile {
// Load the file contents as a string.
let agencesString = try! String(contentsOfFile: path, encoding: String.Encoding.utf8)
// Append the countries from the string to the dataArray array by breaking them using the line change character.
self.dataArray = agencesString.components(separatedBy: "\n")
// Reload the tableview.
self.tblSearchResults.reloadData()
}
} else {
print(response.result.error!)
}
}
}
Merci de votre aide,
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Enregistre-le dans le répertoire Documents de la sandbox de l'appli:
2) String: AnyObject est un Array de dictionnaires. Or Array ne possède pas de méthode write(), mais NSArray, si. D'après l'exemple donné dans la doc d'Array:
Je n'ai pas testé, et je crains que tu doives aussi convertir [String: AnyObject] en NSDictionary.
Merci a toi je vais modifier mes erreur
Bonsoir et bonne année a tous le monde et encore merci de votre aide et conseille.
Mon problème et que j'arrive a écrire le json dans un fichier texte local, je voudrais que cela ressemble a ça
Il ressemble a cela après write :
mais je voudrai que cela ressemble a ça dans mon fichier :
Je n'y arrive pas.
merci de votre aide.
Cela ne ressemble à aucun format.
Le format que tu as, c'est normal car tu as utiliser le write d'un NSArray (ou d'un NSDictionary donnera un résultat du même type) et a donc écrit un .plist
Si c'est uniquement pour ton application, tu n'as aucun problème, tu peux lire le plist directement (contentsOfFile:).
Si tu veux "écrire réellement du JSON", il faut utiliser sa représentation en String. Auquel cas, tu dois passer par NSJSONSerialization (qui transformera ton array/dictionary en NSData, puis tu le passer en String).
Mais c'est pas clair ce que tu veux réellement.
Bonjour,
je vous explique je récupérer du json que je copie dans un fichier .json local, l'utilise pour faire des recherches, cela doit ressembler a du texte.
je n'arrive pas a trier ce format .plist, pour écrire que du texte sans les array, key comment faire et ne garder que les string.
Le résultat que je veux dans mon fichier texte.
Voilà pour quoi je cherche cela.
Merci de votre aide,
Ok.
Donc en réalité, tu ne sauvegardes pas du JSON réellement. Tu veux sauvegarder une sorte de string parsé à partir de JSON.
Il faut donc faire ton parsing comme tu l'entends. Sachant que tu sembles perdre toutes les clés des dictionnaires et garder uniquement leurs values, tu dois pouvoir utiliser en Swift map ou flatmap (mais je laisserais les dév' en Swift te conseiller mieux), ou alors le faire à la main en itérant le tout.
Peut-tu m'aider je n'y arrive pas .
voilà mon code :
Merci de ton aide, je suis perdu.
Pour écrire/lire dans un fichier JSON local, j'utilise SwiftyJSON
Mon code :
Merci de votre aide, j'ai résolut mon problème.