Outil Tool Kumar
JSON vers Swift
Générez des structures Swift conformes à Codable. Le convertisseur ajoute CodingKeys lorsque les noms de propriétés diffèrent des clés JSON. Une clé comme user-id est ainsi décodée dans userId.
Utiliser cet outil
- Collez une réponse représentative, en incluant des enregistrements dont les champs diffèrent.
- Vérifiez la sortie générée et modifiez le nom racine si nécessaire.
- Copiez ou téléchargez le code, puis vérifiez les types par rapport à votre contrat d'API.
Exemple détaillé
Cette sortie provient du convertisseur intégré. Les deux prix des articles donnent un champ à virgule flottante ; les valeurs null et chaîne du champ note donnent un champ nullable.
Entrée
{
"user-id": 42,
"profile": {
"city": "London",
"created_at": "2026-10-14T09:00:00Z"
},
"items": [
{
"price": 12,
"note": null
},
{
"price": 12.5,
"note": "gift"
}
]
}Sortie
import Foundation
struct Root: Codable {
let userId: Int
let profile: Profile
let items: [Item]
enum CodingKeys: String, CodingKey {
case userId = "user-id"
case profile, items
}
}
struct Profile: Codable {
let city: String
let createdAt: String
enum CodingKeys: String, CodingKey {
case city
case createdAt = "created_at"
}
}
struct Item: Codable {
let price: Double
let note: String?
}
Décoder avec JSONDecoder
Utilisez JSONDecoder avec la structure Root générée. Codable permet aussi d'encoder ce même modèle avec JSONEncoder.
Conservez la stratégie de clés par défaut pour cette sortie. Ses CodingKeys contiennent déjà les noms transmis dans le JSON, notamment created_at.
let model = try JSONDecoder().decode(Root.self, from: responseData)
let encoded = try JSONEncoder().encode(model)Options et cas limites
- Les entiers donnent le type Int, les valeurs décimales donnent Double et les entiers qui dépassent la plage des entiers signés sur 64 bits donnent Decimal. Vérifiez les limites de la plateforme cible et la précision décimale.
- Les valeurs null et les champs absents produisent des propriétés optionnelles. Les structures dont les valeurs sont uniquement null ou de types hétérogènes utilisent au besoin le type utilitaire JSONValue généré.
- JSONValue stocke les nombres sous forme de Double. Utilisez donc des types explicites pour les montants monétaires exacts ou les très grands identifiants.
- Les chaînes de date restent de type String. Si vous passez un champ au type Date, configurez JSONDecoder.dateDecodingStrategy selon le format de l'API.
Privé par défaut
Votre document reste dans ce navigateur. Tool Kumar analyse, convertit et crée les téléchargements sur votre appareil, sans compte ni étape d'envoi au serveur.
JSON vers Swift : questions fréquentes
- Le générateur produit-il des classes ou des structures ?
- Des structures conformes à Codable, avec des propriétés let et des types de modèles imbriqués. Il importe Foundation.
- Quand CodingKeys est-il ajouté ?
- Lorsqu'un nom de propriété change, le générateur produit une énumération CodingKeys qui associe les identifiants Swift aux clés JSON d'origine.
- Comment null est-il traité ?
- Les valeurs null observées et les champs absents produisent des propriétés optionnelles. Les valeurs inconnues ou de types hétérogènes utilisent une énumération JSONValue conforme à Codable, ajoutée uniquement si elle est référencée.
- Puis-je utiliser JSONDecoder directement ?
- Oui. Copiez les structures générées dans votre projet et décodez Root.self à partir de Data. Vérifiez d'abord les champs optionnels et les types des dates.
Outils associés
JSON vers Dart, JSON vers des data classes Kotlin et Générateur JSON Schema.