| import org.jetbrains.kotlinx.dataframe.* |
| import org.jetbrains.kotlinx.dataframe.annotations.* |
| import org.jetbrains.kotlinx.dataframe.api.* |
| import org.jetbrains.kotlinx.dataframe.io.* |
| import java.io.File |
| |
| private fun convert(data: List<String>) = data.map { it.split(":") }.toDataFrame { |
| "part1" from { it[0] } |
| "part2" from { it[1].toInt() } |
| "part3" from { it[2] } |
| } |
| |
| fun serialize(data: List<String>, destination: File) { |
| convert(data).writeJson(destination) |
| } |
| |
| fun deserializeAndUse(file: File) { |
| val df = DataFrame.readJson(file).castTo(schemaFrom = ::convert) |
| df.part1.print() |
| } |
| |
| fun box(): String { |
| val file = File.createTempFile("temp", "json") |
| serialize(listOf("b:1:abc", "c:2:bca"), file) |
| deserializeAndUse(file) |
| return "OK" |
| } |