0
0
KotlinHow-ToBeginner · 3 min read

How to Write JSON File in Kotlin: Simple Guide

To write a JSON file in Kotlin, use the kotlinx.serialization library to convert your data class to a JSON string, then save it to a file with File.writeText(). This approach is simple and type-safe for handling JSON data.
📐

Syntax

Use @Serializable to mark your data class for JSON serialization. Then use Json.encodeToString() to convert the object to a JSON string. Finally, write the string to a file using File.writeText().

  • @Serializable: Marks class for JSON conversion.
  • Json.encodeToString(): Converts object to JSON string.
  • File.writeText(): Saves string to a file.
kotlin
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import java.io.File

@Serializable
data class User(val name: String, val age: Int)

fun writeJsonFile(user: User, filename: String) {
    val jsonString = Json.encodeToString(user)
    File(filename).writeText(jsonString)
}
💻

Example

This example shows how to create a User object, convert it to JSON, and write it to a file named user.json. It demonstrates the full process from data class to file output.

kotlin
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import java.io.File

@Serializable
data class User(val name: String, val age: Int)

fun main() {
    val user = User("Alice", 30)
    val jsonString = Json.encodeToString(user)
    File("user.json").writeText(jsonString)
    println("JSON file written successfully.")
}
Output
JSON file written successfully.
⚠️

Common Pitfalls

Common mistakes include forgetting to add @Serializable to your data class, which causes serialization to fail. Another is not including the kotlinx.serialization dependency in your project. Also, writing JSON without proper encoding can cause errors.

Always use the Json.encodeToString() method and ensure your data classes are serializable.

kotlin
/* Wrong: Missing @Serializable annotation */
data class User(val name: String, val age: Int)

/* Right: Add @Serializable to enable JSON serialization */
@Serializable
data class User(val name: String, val age: Int)
📊

Quick Reference

  • Add kotlinx.serialization plugin and dependency.
  • Mark data classes with @Serializable.
  • Use Json.encodeToString() to convert objects.
  • Write JSON string to file with File.writeText().

Key Takeaways

Use @Serializable on data classes to enable JSON serialization.
Convert objects to JSON strings with Json.encodeToString().
Write JSON strings to files using File.writeText().
Include kotlinx.serialization dependency in your project.
Avoid missing annotations or dependencies to prevent errors.