vous avez probablement le même problème que moi ... Les données de retour est au format JSONP au lieu de JSON pur. En d'autres termes, vous aurez affaire à quelque chose comme
functionCall({"Name": "Foo", "Id" : 1234, "Rank": 7});
au lieu de simplement
{"Name": "Foo", "Id" : 1234, "Rank": 7}
Plus d'info here
Vous aurez besoin de dépouiller la fonction et les parenthèses de la chaîne avant de l'analyser à travers le cadre JSON. Vous pouvez le faire avec les éléments suivants Expression régulière (espacées pour le rendre plus facile à voir):
\w+ \s? \((\{ .* \}) \}
Et le script d'écrire c'est:
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression
regularExpressionWithPattern:@"\\w+\\s?\\((\\{.*\\})\\)"
options:NSRegularExpressionCaseInsensitive
error:&error];
[regex replaceMatchesInString:resultString
options:0
range:NSMakeRange(0, [resultString length])
withTemplate:@"$1"];
NSLog(@"resultString = %@", resultString);
NSLog(@"converted = %@", [resultString JSONValue]);
où resultString
est la réponse de l'url request ... Il doit être stocké en tant que NSMutableString
pour que l'expression régulière le mette à jour.
Nous aurions besoin de voir les données que vous essayez de décoder – grahamparks
Si vous êtes celui qui crée l'objet JSON que votre application analyse ensuite, vérifiez si vous créez correctement l'objet JSON. Aussi, comme le dit Graham, collez les données – Bourne
+100000 pour l'enregistrement des données. – JeremyP