28 lines
774 B
Kotlin
Vendored
28 lines
774 B
Kotlin
Vendored
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"
|
|
}
|