JSON → Scala 3 & 2

JSON to Scala 3 & Scala 2 Case Class Generator

Convertissez vos charges utiles JSON en case classes Scala sécurisées avec dérivation automatique de codecs Circe, Play JSON ou zio-json.

Préréglages :
Root:
Package:
5 Classes32 ChampsProfondeur : 2
Entrée
package com.example.models

import java.time.Instant

import io.circe._
import io.circe.generic.semiauto._
import io.circe.syntax._

final case class Customer(
  customerId: String,
  email: String,
  fullName: String,
  loyaltyTier: String,
  registeredAt: Instant
) derives Codec.AsObject

final case class ShippingAddress(
  street: String,
  city: String,
  state: String,
  postalCode: String,
  country: String
) derives Codec.AsObject

final case class LineItem(
  sku: String,
  title: String,
  unitPrice: BigDecimal,
  quantity: Int,
  taxRate: BigDecimal,
  inStock: Boolean
) derives Codec.AsObject

final case class Payment(
  transactionRef: String,
  method: String,
  isAuthorized: Boolean,
  paidAt: Instant
) derives Codec.AsObject

final case class OrderPayload(
  orderId: String,
  orderNumber: String,
  customer: Customer,
  shippingAddress: ShippingAddress,
  lineItems: List[LineItem],
  subtotal: BigDecimal,
  taxAmount: BigDecimal,
  totalAmount: BigDecimal,
  currency: String,
  payment: Payment,
  discountCode: Option[String] = None,
  notes: String
) derives Codec.AsObject
5
Case Classes Inferred
32
Champs
Niveau 2
Max AST Hierarchy Depth

Exécution Locale Zero-Knowledge

Tous les traitements, analyses et générations s'exécutent strictement dans la mémoire de votre navigateur. Zéro transmission vers un serveur externe.

Moteur Réactif Submilliseconde

All data payloads remain strictly local with zero external server communication.

Production Ready Export

Clean, optimized output formats ready for immediate deployment.

Référence technique et guide d'architecture

Guide Développeur : Générateur de Case Classes JSON vers Scala 3 & Scala 2 — Guide de référence

Convertissez vos charges utiles JSON en case classes Scala sécurisées avec dérivation automatique de codecs Circe, Play JSON ou zio-json.

Paramètres clés et contrôles

Version Cible de ScalaEnum (Scala 3 | Scala 2.13)

Contrôle la syntaxe de sortie : clauses modernes 'derives' en Scala 3 ou companion objects implicites en Scala 2.13.

Par défaut : Scala 3
Bibliothèque de Codecs JSONEnum (Circe | Play JSON | zio-json | None)

Framework utilisé pour générer les décodeurs, encodeurs et formats de sérialisation.

Par défaut : Circe
Nom de la Classe RacineString

Nom de la case class principale représentant l'objet racine du payload JSON.

Par défaut : RootResponse
Champs Nullables et OptionnelsEnum (Option[T] | Strict T)

Encapsule les valeurs nulles et les champs manquants dans Option[T] pour garantir l'absence de NullPointerException.

Par défaut : Option[T]

Conseils de pro et bonnes practices

Clément de la Clause 'derives' en Scala 3

En ciblant Scala 3 avec zio-json ou Circe, 'derives JsonCodec' est généré directement sur la classe, supprimant le code verbeux des companion objects.

Échappement des Mots-Clés Réservés

Les champs nommés 'type', 'val' ou 'case' sont protégés par des apostrophes inversées (ex. `type`: String) pour assurer une compilation immédiate.

Décomposition Propre des Objets Imbriqués

Les sous-objets JSON imbriqués sont analysés récursivement et extraits sous forme de case classes indépendantes et réutilisables.

Pièges courants et dépannage

Tableaux JSON avec Éléments Hétérogènes

Lorsque les objets d'une liste possèdent des structures divergentes, le convertisseur unifie les clés et assigne Option[T] aux champs non universels.

Caractères Non Valides dans les Clés JSON

Les attributs avec tirets (ex. 'x-auth-token') sont convertis en camelCase et munis de l'annotation @JsonKey idoine.

Foire aux questions (FAQ)

Quelles sont les différences majeures entre les sorties Scala 3 et Scala 2 ?▼

Scala 3 utilise la clause 'derives' concise et la syntaxe moderne, tandis que Scala 2.13 s'appuie sur des objets compagnons dotés de valeurs implicites.

Quelles bibliothèques JSON sont prises en charge ?▼

Le générateur supporte Circe (io.circe.generic), zio-json, Play JSON (play.api.libs.json) ainsi que des case classes pures sans dépendances externes.

Comment les nombres JSON sont-ils traduits en types Scala ?▼

Les entiers deviennent des Int ou Long selon leur valeur, tandis que les décimaux sont convertis en Double ou BigDecimal pour les calculs de haute précision.

Mes données JSON transitent-elles par un serveur externe ?▼

Non. La transformation et la génération de code s'effectuent à 100 % localement dans votre navigateur web, sans aucun transfert réseau.

Outils et utilitaires connexes

Tous les outils →