In dit artikel
Waarom Kotlin data classes uit JSON
Kotlin data classes bieden een beknopte manier om JSON-data te modelleren met ingebouwde equals, hashCode, copy en destructuring-ondersteuning. Voor Android-ontwikkelaars en backend Kotlin-projecten is het handmatig schrijven van data classes voor elke API-response tijdrovend en foutgevoelig. Onze JSON naar Kotlin converter genereert idiomatische data classes met juiste null safety, serialisatie-annotaties en naamconventies in seconden.
Kotlin's null safety systeem is een van de sterkste functies, maar vereist expliciete nullable type-declaraties. Bij het converteren van JSON — waar elk veld potentieel null kan zijn — analyseert de converter intelligent de data om te bepalen welke velden nullable moeten zijn (gemarkeerd met ?) en welke veilig non-null kunnen zijn, wat veiligere code produceert vanaf het begin.
Converter-functies
De converter produceert Kotlin data classes afgestemd op uw serialisatiebibliotheek en projectvereisten.
- Nullable types — velden met null-waarden in het JSON-voorbeeld genereren nullable types (String?), terwijl aanwezige waarden non-null types (String) genereren, wat het datacontract nauwkeurig weerspiegelt
- @SerializedName — genereert Gson @SerializedName-annotaties wanneer JSON-sleutels snake_case of andere niet-camelCase formaten gebruiken, en mapt ze naar idiomatische Kotlin property-namen
- Standaardwaarden — optionele velden kunnen standaardwaarden bevatten (lege strings, lege lijsten, null) in de constructor, waardoor de data class flexibel is voor gedeeltelijke JSON-responses
Probeer gratis — geen aanmelding vereist
JSON naar Kotlin converteren →Android-specifieke patronen
Kotlin data classes gegenereerd uit JSON zijn bijzonder nuttig in Android-ontwikkelworkflows.
- Parcelize — gegenereerde data classes kunnen worden geannoteerd met @Parcelize en Parcelable implementeren voor het doorgeven tussen Android activities en fragments zonder parcel-code te schrijven
- Room-integratie — de uitvoer kan dienen als Room entity-klassen door @Entity en @PrimaryKey annotaties toe te voegen, waardoor API-responses direct worden gekoppeld aan lokale databaseopslag
- Retrofit-compatibiliteit — de gegenereerde klassen werken direct met Retrofit en Gson/Moshi-converters, waardoor u API-interfaces kunt definiëren en binnen minuten netwerkoproepen kunt starten
Veelgestelde vragen
Hoe behandelt de converter null safety?
De converter onderzoekt elk veld in het JSON-voorbeeld. Velden met null-waarden worden getypeerd als nullable (bijv. String?). Velden met werkelijke waarden worden getypeerd als non-null (bijv. String). Voor de meest nauwkeurige null safety, verstrek een JSON-voorbeeld dat het volledige bereik van uw data vertegenwoordigt — inclusief velden die null kunnen zijn in productie.
Moet ik val of var gebruiken voor data class properties?
De converter genereert standaard val (alleen-lezen) properties, volgens Kotlin's voorkeur voor onveranderlijkheid. Data classes met val properties zijn thread-safe en gemakkelijker te begrijpen. Als u muteerbare properties nodig heeft voor specifieke gevallen zoals Room entities met automatisch gegenereerde ID's, kunt u individuele properties na generatie wijzigen naar var.
Kan ik sealed classes genereren voor polymorfe JSON?
De converter genereert standaard data classes uit de JSON-structuur. Voor polymorfe JSON (waar een veld het objecttype bepaalt) moet u handmatig een sealed class-hiërarchie maken na generatie. Gebruik de converter om elke variant als een aparte data class te genereren, en verpak ze vervolgens in een sealed class met een discriminator-veld.