Ga naar inhoud
100% lokaal

JSON naar Kotlin dataclass

Zet een JSON-voorbeeld om in een direct bruikbare Kotlin dataclass.

Invoer
Uitvoer

JSON naar Kotlin dataclass

Plak een JSON-antwoord en dit hulpmiddel zet het om in een direct bruikbare Kotlin dataclass, waarbij het type van elk veld direct uit de verstrekte waarden wordt afgeleid. Het is ontworpen voor Android- en backend-ontwikkelaars die snel een model voor een API-reactie, configuratiebestand of voorbeeld-payload nodig hebben, zonder eigenschaftsnamen en typen handmatig in te tikken of een IDE-plugin te gebruiken.

Stel een naam in voor de hoofdklasse en kies hoe geneste objecten verschijnen: genest in de hoofdklasse of gedeclareerd als aparte klassen op het hoogste niveau. Wissel tussen val voor onveranderbare eigenschappen en var wanneer het model muteerbaar moet zijn, en zet standaardwaarden aan om elke eigenschap een zinvolle fallback te geven (lege tekenreeks, nul, emptyList()) zodat instanties met minder argumenten kunnen worden aangemaakt. Voeg @Serializable- en @SerialName-annotaties toe voor kotlinx.serialization, of @SerializedName voor Gson, en kies 2-spaties-, 4-spaties- of tab-inspringing om aan de stijl van je project te voldoen.

Ontbrekende of nul-waarden worden automatisch nullable typen, arrays worden List<T> met het type afgeleid uit elk element, en objecten met dezelfde vorm worden samengesteld in één hergebruikte klasse in plaats van te worden gedupliceerd. De optie "Velden in array-elementen samenvoegen" bepaalt of dat elementtype uit elk element in de array of alleen uit het eerste wordt opgebouwd, wat nuttig is voor een zeer grote of ongelijk gevormd array. Wanneer de JSON op het hoogste niveau zelf een array is, omhult het hulpmiddel het afgeleide elementtype in een List voor je.

Alles wordt lokaal in je browser uitgevoerd — je JSON wordt nooit geüpload of naar een server verzonden, dus het is veilig om echte API-reacties en interne payloads in te plakken. Kopieer de gegenereerde Kotlin, download deze als .txt-bestand, of stuur de uitvoer terug naar de invoer voor conversie met andere opties.

FAQ

Hoe bepaalt het hulpmiddel welke velden nullable zijn?
Een veld wordt nullable wanneer het in minstens één voorbeeldobject ontbreekt, of wanneer de enige waargenomen waarde null is. Een veld dat in elk object aanwezig is met een niet-nul waarde, blijft niet-nullable.
Kan het de kotlinx.serialization- of Gson-annotaties genereren die ik nodig heb?
Ja. Kies kotlinx.serialization om @Serializable en @SerialName toe te voegen, of Gson om @SerializedName toe te voegen met de oorspronkelijke JSON-sleutel, zodat de klasse correct deserialiseerd wordt, zelfs als de eigenschapnaam verschilt.
Wat gebeurt er met een JSON-array waarvan de objecten verschillende vormen hebben?
Hun velden worden samengevoegd in één dataclass, met elk veld dat in sommige elementen ontbreekt, gemarkeerd als nullable. Schakel "Velden in array-elementen samenvoegen" uit om het type in plaats daarvan alleen uit het eerste element af te leiden.
Ondersteunt het geneste objecten?
Ja. Een genest object wordt zijn eigen dataclass, ofwel gedeclareerd in de hoofdklasse, ofwel als aparte klasse op het hoogste niveau, afhankelijk van de nestoptie.
Wordt mijn JSON ergens geüpload?
Nee. De conversie wordt volledig in je browser uitgevoerd — je JSON verlaat je apparaat nooit.