J'essaie d'analyser les données d'un fichier JSON. J'essaie de mettre ces données analysées/récupérées dans une UIView avec une étiquette ou dans une vue Web. Le fichier JSON ressemble à ceci:
{"bodytext": "<p>\n Some lines here about some webpage (“ <em>Site</>”) some more lines here. \n </p>\n\n <p>\n some more stuff here </p>
}
Il y a des messages ici sur Stack Overflow montrant comment analyser JSON récupéré à partir d'une URL Web, mais j'ai en fait déjà un fichier JSON que je veux analyser. Comment analyser JSON à partir d'un fichier?
Créez un fichier texte vide (Nouveau fichier/Autre/Vide), par ex. "example.json"
Collez la chaîne json dans le fichier.
Utilisez ces lignes pour obtenir les données:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"example" ofType:@"json"];
NSData *data = [NSData dataWithContentsOfFile:filePath];
NSArray *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
Version Swift 2.0 de la réponse acceptée:
if let filePath = NSBundle.mainBundle().pathForResource("example", ofType: "json"), data = NSData(contentsOfFile: filePath) {
do {
let json = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments)
}
catch {
//Handle error
}
}
J'ai suivi ça et ça marche bien
NSError *error = nil;
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"messages"
ofType:@"json"];
NSData *dataFromFile = [NSData dataWithContentsOfFile:filePath];
NSDictionary *data = [NSJSONSerialization JSONObjectWithData:dataFromFile
options:kNilOptions
error:&error];
if (error != nil) {
NSLog(@"Error: was not able to load messages.");
return nil;
}