J'utilise NSJSONSerialization JSONObjectWithData:options:error:
dans un projet iOS 5 pour lire une chaîne JSON et la convertir en objet Foundation. Existe-t-il un moyen simple de savoir si l'objet ou certains de ses enfants sont des tableaux, des dictionnaires, des nombres ou des chaînes de caractères?Types JSON Objective-C
Répondre
Vous pouvez vérifier si l'objet renvoyé est une certaine classe avec la méthode -isKindOfClass:
. Par exemple, pour vérifier s'il s'agit d'un tableau:
id jsonObj = [NSJSONSerialization JSONObjectWithData:...]
if ([jsonObj isKindOfClass:[NSArray class]] {
// Do array stuff...
}
De même pour les autres types de fondations.
Veuillez faire attention à l'utilisation de NSJSONSerialization
car il est uniquement pris en charge sur iOS 5.0+ et Mac OS X 10.7+.
Je pense que vous pouvez aussi avoir un essai avec des bibliothèques tierces, telles que:
deux sont faciles à utiliser et flexible.
Tous les objets peuvent répondre à leur classe. Encore plus utile, vous pouvez demander si quelque chose est membre d'une classe ou tout c'est sous-classes:
id jsonParse;
if ([jsonParse isKindOfClass:[NSArray self]]) {
for (id element in (NSArray *)jsonParse) {
// and so on
}
}
'[NSArray self]' semble bizarre (bien que cela fonctionne); '[NSArray class]' est beaucoup plus typique idiomatique Objective-C. –
C'est plus typique, mais juste un peu plus faux. Demander à une classe pour sa classe, c'est demander sa méta-classe (un concept miséricordieusement absent de l'objectif C). Demander une classe pour elle-même, cependant, est clair, correct, et j'ose dire ... chic. – danh
- 1. NumberFormatter - ObjectiveC
- 2. se débarrasser des symboles variables (JSON) [] {} pour la variable ObjectiveC
- 3. Variable statique dans ObjectiveC
- 4. ObjectiveC bloque l'équivalent Java
- 5. Shapefile avec ObjectiveC
- 6. Combine chaîne en ObjectiveC
- 7. Chiffres aléatoires ObjectiveC
- 8. Analyseur AMF0 dans ObjectiveC
- 9. NSString question ObjectiveC
- 10. Calculer l'intersection dans ObjectiveC
- 11. Reliure ObjectiveC classe C# problème
- 12. JSON désérialisation à C# types
- 13. ObjectiveC UIBezierPath chemin fermeture problème
- 14. alloca et ObjectiveC Garbage Collector
- 15. Décryptage AES en utilisant ObjectiveC
- 16. Autorisation avec gdata-objectivec-client
- 17. Personnalisation de writeToFile dans ObjectiveC
- 18. Trier un tableau dans ObjectiveC
- 19. Accepter différents types d'entrée de tableau JSON?
- 20. Json parser 2 types d'attributs différents?
- 21. Types de superposition GWT, conversion en JSON
- 22. Deux types de réponse JSON (Python)
- 23. Conversion de la chaîne JSON CLR Types
- 24. Parsing les « types » de fichier JSON
- 25. GWT - Types de superposition JavaScript et JSON
- 26. réponse JSON avec différents types de données
- 27. Deserialize JSON avec différents types d'objets
- 28. Jackson - Traitement JSON avec plusieurs types
- 29. JSON: Types de sérialisation dérivés de IEnumerable
- 30. vb.net renvoie l'objet json avec plusieurs types?
J'utilise le ** cadre SBJson ** pour un certain temps, et il a travaillé pour une grande moi ... ;-) –
C'est sympa, mais ça ne répond pas vraiment à la question ... Cela pourrait mieux convenir comme commentaire. – rid