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 파일 객체로 파싱하는법
'Language > Kotlin' 카테고리의 다른 글
2021 - 05 - 14, Kotlin (0) | 2021.05.16 |
---|---|
2021 - 05 - 13, Kotlin (0) | 2021.05.14 |
2021 - 05 - 11, Kotlin (0) | 2021.05.13 |
2021 - 05 - 10, Kotlin (0) | 2021.05.13 |
2021 - 05 - 09, Kotlin (0) | 2021.05.10 |