Lim inn Scala til venstre og klikk på "Konverter" — vi lager JSON av detLim inn Scala-kode

Hva dette verktøyet gjør

Har du en Scala-case class med et dusin felter, og trenger den matchende JSON-payloaden — til en test, et API-kall, en Kafka-message-fixture — blir det fort slitsomt å sette sammen for hånd. Lim inn Scalaen her og få gyldig JSON tilbake. En enkelt case class, en hel fil full av dem, eller en komplett instans bygd med named arguments — samme flyt, samme resultat.

Konverteren følger det vanlige Scala JSON-bibliotek produserer. Circe, Play JSON og uPickle serialiserer en case class ved å gjøre feltene om til JSON-nøkler — nøyaktig det du får her. Int, Long, Double og BigDecimal blir JSON-tall. Boolean forblir boolean. Option[A] blir verdien når det er Some(x), eller null / utelates når det er None. Instant, LocalDateTime og andre java.time-typer kommer ut som ISO-8601-strenger.

Collections følger den opplagte mappingen. List, Seq, Vector og Set blir alle JSON-arrays. Map[String, A] blir et JSON-objekt. Tupler blir JSON-arrays med blandede verdier. Limer du inn en sealed trait med case class-barn (en ADT), serialiseres hver variant i sin egen form, og parseren plukker opp ADT-discriminator-mønsteret de fleste bibliotek bruker. Lim inn flere top-level-klasser fra samme fil (se Scala-repoet for inspirasjon), og hver får sin egen JSON-oppføring.

Slik bruker du det

Tre steg. Fungerer likt for en enkelt case class og en hel modellfil.

1

Lim inn Scalaen din (eller prøv eksemplet)

Slenge Scalaen som den er inn i editoren til venstre. En case class, et sealed trait-hierarki, en instans eller flere klasser — alt går. Klikk Last inn eksempel hvis du vil se et realistisk tilfelle først.

La imports, package-deklarasjoner og annotations stå. Parseren ignorerer det som ikke er data. For språkdetaljer er docs.scala-lang.org den offisielle referansen.

2

Trykk Konverter

Trykk på den grønne Konverter-knappen. Verktøyet leser Scalaen, går gjennom hver klasse og hvert felt, og produserer JSON i én runde. En kort lasteindikator vises mens det kjører.

3

Kopier JSON-en

Høyre panel fylles med innrykket JSON. Slenge det inn i en ScalaTest-spec, et mocket Akka HTTP-svar, en Play-fixture, eller API-dokumentasjonen din.

Når det faktisk redder deg

ScalaTest-fixtures

Du trenger en JSON-body for å stubbe en HTTP-klient i en Scala-servicetest. Lim inn case classen, ta payloaden, slenge den inn i specen.

Akka-/Play-HTTP-payloads

Gjør en case class om til JSON-en du ville POSTet til din egen tjeneste. Nyttig for kjappe curl-tester når du kobler opp en ny endpoint.

Kafka-message-eksempler

Generer eksempel-JSON-messages for et nytt Kafka-topic direkte fra domene-case-classes — ingen håndskrevne eksempler som driver fra koden over tid.

Dokumentasjon som matcher koden

Produser JSON-eksempler til API-dokumentasjon direkte fra dine faktiske case classes, slik at dokumentene holder seg korrekte når modellene utvikler seg.

Vanlige spørsmål

Hvordan serialiseres Option-verdier?

Some(x) blir verdien x; None blir JSON null. Det matcher default-oppførselen i Circe. Vil du heller ha nøklene utelatt ved None, kan du strippe dem etterpå — den trygge defaulten holder formen forutsigbar.

Hva med sealed traits og ADT-er?

Sealed traits med case class-barn serialiseres per variant. Det vanlige discriminator-mønsteret ({"type": "OrderPlaced", ...}) Circe og Play JSON bruker anvendes når flere varianter deler en parent trait, så du kan round-trippe dataen tilbake i ADT-en.

Hvordan håndteres java.time-typer?

Instant, LocalDate, LocalDateTime og ZonedDateTime serialiseres til ISO-8601-strenger. Det er konvensjonen Circe, Play JSON og uPickle deler, og den round-tripper rent tilbake til java.time.

Håndterer den Map, List, Vector, Set?

Ja. List, Seq, Vector og Set blir alle JSON-arrays. Map[String, A] blir et JSON-objekt — maps med ikke-string-nøkler (Map[Int, A]) sendes ut som arrays av nøkkel/verdi-par, siden JSON bare støtter string-nøkler.

Kan jeg lime inn en hel fil med flere case classes?

Ja. Hver top-level-klasse blir sin egen JSON-oppføring, med nestede instanser foldet ut. Companion objects, implicit conversions og hjelpemetoder hoppes over — bare data ender i outputet.

Lagres koden min?

Scalaen din sendes til backend for konvertering og lagres ikke. Vi logger ikke payloaden. Er koden sensitiv, ta en rask kikk før du limer inn.

Andre verktøy du kan trenge

Scala til JSON er én bit. Disse passer godt sammen med det: