1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
data class Person( val name: String, val age: Int, val email: String ) fun main() { val json = """ { "name": "John", "age": 30, "email": "john@example.com" } """.trimIndent() val person = parsePerson(json) println("Name: ${person.name}") println("Age: ${person.age}") println("Email: ${person.email}") } fun parsePerson(json: String): Person { val jsonObject = json.trim().removePrefix("{").removeSuffix("}") val name = getValue(jsonObject, "name") val age = getValue(jsonObject, "age")?.toIntOrNull() ?: 0 val email = getValue(jsonObject, "email") return Person(name ?: "", age, email ?: "") } fun getValue(json: String, key: String): String? { val keyValuePairs = json.split(",").map { it.trim() } for (pair in keyValuePairs) { val (k, v) = pair.split(":").map { it.trim() } if (k == "\"$key\"") { return v.removeSurrounding("\"") } } return null } |
