Language/Kotlin
2021 - 05 - 12, Kotlin
Cs.Woo
2021. 5. 13. 02:49
fun testArticleFromJson(jsonStr: String): TestArticle {
val jsonMap = mapFromJson(jsonStr)
val id = jsonMap["id"].toString().toInt()
val title = jsonMap["title"].toString()
val body = jsonMap["body"].toString()
return TestArticle(id, title, body)
}
fun mapFromJson(jsonStr: String): Map<String, Any> {
val map = mutableMapOf<String, Any>()
var jsonStr = jsonStr.drop(1)
jsonStr = jsonStr.dropLast(1)
val jsonItems = jsonStr.split(",\r\n")
for (jsonItem in jsonItems) {
val jsonItemBits = jsonItem.trim().split(":", limit = 2)
val key = jsonItemBits[0].trim().drop(1).dropLast(1)
var value = jsonItemBits[1].trim()
when {
value == "true" -> {
map[key] = true
}
value == "false" -> {
map[key] = false
}
value.startsWith("\"") -> {
map[key] = value.drop(1).dropLast(1)
}
value.contains(".") -> {
map[key] = value.toDouble()
}
else -> {
map[key] = value.toInt()
}
}
}
return map.toMap()
}
코틀린으로 JSON 파일 객체로 파싱하는법