Comment créer des données JSON fictives sur le client dans l'objectif C / iOS?
Je veux configurer statique des données en JSON, pour mon application à traiter. C'est uniquement côté client; je ne veux pas récupérer quoi que ce soit à partir du réseau.
Toutes les questions et les réponses que j'ai vu jusqu'à présent ont NSData* variables de stocker ce qui est récupéré à partir d'appels réseau et [JSONSerialization JSONObjectWithData: ...] en règle générale sur des données qui n'a pas été créé manuellement.
Voici un exemple de ce que j'ai essayé dans xcode.
NSString* jsonData = @" \"things\": [{ \
\"id\": \"someIdentifier12345\", \
\"name\": \"Danny\" \
\"questions\": [ \
{ \
\"id\": \"questionId1\", \
\"name\": \"Creating dummy JSON data by hand.\" \
}, \
{ \
\"id\": \"questionId2\", \
\"name\": \"Why no workie?\"
} \
], \
\"websiteWithCoolPeople\": \"http://stackoverflow.com\", \
}]}";
NSError *error;
NSDictionary *parsedJsonData = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&error];
Tentatives de ce genre (et d'essayer de changer les choses, comme la commutation de la NSString* NSData* à partir de cette chaîne JSON) ont donné une valeur null parsedJsonData de données ou à des exceptions lors de la tentative de créer que des données JSON variable ou lorsque vous essayez de l'analyser.
Comment puis-je créer dummy données JSON dans mon propre code, tel qu'il peut être analysé par la Fondation des classes qui analyser les données JSON?
source d'informationauteur Danny
Vous devez vous connecter pour publier un commentaire.
Je voudrais sauver mon test json en tant que fichiers distincts dans l'application. L'avantage de ceci est que vous pouvez simplement copier & coller des réponses à partir d'un service web et de les lire facilement sans avoir à les convertir à NSDictionaries ou échappé à cordes.
J'ai formaté correctement votre JSON (à l'aide de jsonlint) et enregistré dans un fichier nommé
testData.json
dans l'app bundle.Pour analyser ce fichier dans votre application, vous pouvez simplement charger le fichier à partir du répertoire du bundle.
Il serait assez facile de l'étendre à charger un nombre de réponses et, pour l'essentiel, un local de service web. Ensuite, il ne serait pas beaucoup plus de travail à adapter à la charge des réponses à partir d'un serveur distant.
Essayer quelque chose comme cela!!
tout d'abord
cela crée un jsonData. un autre fait est que la création de données, vous devez utiliser dataWithJSONObject. et cette méthode accepte NSDictionary ou NSArray. NSString n'est pas valide de classe pour cette méthode.
La réponse est dans la création correctement formée, JSON. Si votre JSON est incorrect lorsque vous créez manuellement, puis vous obtenez juste la couverture "null" la valeur de la sérialisation. Ici, ce sont des choses qui me rendait fou parce qu'ils étaient petits facteurs jusqu' @bgoers mentionné l'un d'eux.
Une fois que vous avez votre JSON valide, la Fondation des classes devrait fonctionner parfaitement.
jsonStr maintenant contient les éléments suivants:
Noter que: Dictionnaire peut être un fichier plist dans le projet.
Pour charger les locaux du fichier JSON dans iOS, nous avons besoin d'aller aux phases de construction, par la sélection de la cible, de charger le fichier à l'aide de la copie bundle de ressources. Ensuite créer le fichier.
Tout simplement de l'ajouter par la suite 'fichier-> nouveau fichier -> autre -> vide" procédure de coutume de travail.(J'ai eu du mal pendant 4 heures pour obtenir les résultats escomptés.)
P. S. je ne peux pas dire il y a moins de réputation.