Swift - Créer un modèle de données de réponse JSON
Je suis en train d'apprendre Swift lang et l'une des choses qu'il serait bon d'entendre d'autres commentaires au sujet de "Comment vous gérer les modèles de réponses JSON"? Par exemple -
J'ai User.swift
modèle:
class User: NSObject {
var user_token:String?
var email:String?
}
et aussi je voudrais utiliser KeyValueObjectMapping comme je le fais en Obj-C projets. Malheureusement cela ne fonctionne pas ici:
let parser = DCKeyValueObjectMapping.mapperForClass(User)
let user = parser.parseDictionary(data.objectForKey("user") as NSDictionary) as User
println(user.user_token) // returns nil
Comment pouvez-vous créer vos modèles Swift?
Il y a déjà un couple de Json des bibliothèques écrites en Swift que vous pourriez utiliser. Pour faciliter l'accès aux données json: github.com/lingoer/SwiftyJSON Et pour la cartographie à des objets: github.com/cdebortoli/JsonManagedObject-Swift
David Owens de Microsoft Office pour Mac équipe a une belle approche minimale ici: github.com/owensd/json-swift
Pas besoin de dériver de NSObject en Swift.
Voici une autre bibliothèque qui fait ce que vous êtes à la recherche de: github.com/Hearst-DD/ObjectMapper
David Owens de Microsoft Office pour Mac équipe a une belle approche minimale ici: github.com/owensd/json-swift
Pas besoin de dériver de NSObject en Swift.
Voici une autre bibliothèque qui fait ce que vous êtes à la recherche de: github.com/Hearst-DD/ObjectMapper
OriginalL'auteur Kosmetika | 2014-06-29
Vous devez vous connecter pour publier un commentaire.
Je recommande l'utilisation de la génération de code pour générer des modèles de Swift basé sur JSON. À cette fin, j'ai créé un outil à http://www.guideluxe.com/JsonToSwift pour faire de la modélisation et de l'analyse JSON aussi facile que possible.
Après que vous avez soumis un échantillon de l'objet JSON avec un nom de classe à l'outil, il va générer un correspondant Swift classe, ainsi que tout besoin filiale Swift classes, de représenter la structure implicite par l'exemple de JSON. Sont également inclus les méthodes de la classe utilisée pour remplir Swift objets, y compris celui qui utilise le NSJSONSerialization.JSONObjectWithData méthode. La nécessaire correspondance entre le NSArray et NSDictionary objets sont fournis.
Après avoir copié le code généré dans votre projet Swift classe(es), vous avez seulement besoin de fournir un NSData objet JSON contenant qui correspond à l'échantillon fourni à l'outil.
Autre que de la Fondation, il n'y a pas de dépendances.
Voici comment créer un NSData objet à partir d'un fichier JSON pour le test.
json4swift.com
Vous êtes mon héros.
C'est un gigantically outil utile, continuez comme ça s'il vous plaît. Merci beaucoup
sa génération dans le vieux swift syntaxe
OriginalL'auteur Perry Tribolet
Je conseille SwiftyJSONModel il votre modèle devrait ressembler à quelque chose comme:
Cette bibliothèque dispose de 3 belles choses:
String
en tant que bibliothèque de déduire le typeenum
qui vous donne de l'auto-complition lorsque vous tapez les touches et les garanties que vous ne pouvez pas les clés d'accès, qui ne sont pas dans l'enumOriginalL'auteur Noobass
Voici un exemple de code pour la Classe du Modèle et l'analyse des réponses JSON avec toute la bibliothèque.
Modèle De Classe
Exemple de code d'appel du service web de l'api et de l'Analyse.
OriginalL'auteur Ajumal
Je suis en utilisant jsoncafe plus simple et personnalisable, modèle de base modèle de générateur de classe avec différents framwroks comme SwiftyJSON, Codable, Brillant, Simple Swift Classe même, vous pouvez faire votre propre modèle
jsoncafe.com
OriginalL'auteur Meghs Dhameliya
Si vous voulez une approche plus rigoureuse et d'avoir accès à JSON schémas dans le meta description de votre JSON documents, j'ai écrit un générateur de code qui permet de gérer ces (JSON schema, draft 4):
https://github.com/werner77/MappableObjectGenerator
Mes outils prend en charge pratiquement n'importe quel langage de programmation, car il est basé sur le code de génération de modèles, mais est centré sur l'ObjectiveC et Swift 4 soutien de la droite maintenant.
OriginalL'auteur Werner Altewischer