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.serializationplugin 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.