• XSS.stack #1 – первый литературный журнал от юзеров форума

Kotlin десериализовать json

kokoiToPidor

RAM
Пользователь
Регистрация
03.06.2024
Сообщения
112
Реакции
6
есть такая строка,
[[20250226195100,317.46,317.42,317.42,317.46],[20250226195200,317.44,317.44,317.44,317.44]]

1. как её сконвертировать в какой-нить список/массив массивов?
2. Обязательно ли создавать датаклассы? Покажите плиз как(в массиве по 5 чисел).
 
лучше этого пока не нашёл
Java:
fun main() {
    val inputString = "[[20250226195100,317.46,317.42,317.42,317.46],[20250226195200,317.44,317.44,317.44,317.44]]"
    
    // Remove the square brackets from the start and end of the string
    val cleanString = inputString.trim('[', ']')
    
    // Split the string by "],[" to separate the inner arrays
    val innerArrays = cleanString.split("],[").map {
        // Remove any additional brackets and split by commas, then convert to array of numbers
        it.trim('[', ']').split(',').map { it.toDouble() }.toDoubleArray()
    }.toTypedArray()

    // Print the resulting arrays
    for (array in innerArrays) {
        println(array.joinToString(", ") { it.toString() })
    }
}
 
Пожалуйста, обратите внимание, что пользователь заблокирован
1. Самое просто и при этом правильное решение - использовать kotlinx.serialization [DOCS]
2. Не обязательно, но вот как раз подходящий код для дальнейшего использования kotlinx.serialization



Код:
val raw: List<List<Double>> = Json.decodeFromString(jsonString)

val candles = raw.map {
    Candle(
        t = it[0].toLong(),
        o = it[1],
        h = it[2],
        l = it[3],
        c = it[4]
    )
}
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх