Как получить многомерный примитивный класс массива в котлин?

в Java я использовал gson для синтаксического анализа json как [[1.2, 4.1], [3.4, 4.4]] в java-примитивный многоадресный double[][]

Код выглядит так (и отлично работает):

 String json = "[[1.2, 4.1], [3.4, 4.4]]" double[][] variable = new Gson().fromJson(json, double[][].class); 

Есть ли способ получить double[][].class в kotlin? double[][] variable; может быть заменено в котлин?

Редактировать :

Моя цель – добиться такого же поведения с gson в kotlin. У меня есть тысячи парных пар, чтобы разобрать.

Я хотел бы сделать что-то подобное в котлине:

 val json = "[[1.1, 1.2], [2.1, 2.2, 2.3], [3.1, 3.2]" val variable:Double[][] = Gson().fromJson(json, Double[][]::class.java) 

Ответ на проблему Gson

Для типа вашего используемого примера используйте Array<DoubleArray>::class.java)

Некоторые дополнительные слова на многомерных массивах

Просто оберните arrayOf в другой arrayOf или doubleArrayOf (меньше бокса), чтобы получить что-то вроде Array<DoubleArray> :

 val doubles : Array<DoubleArray> = arrayOf(doubleArrayOf(1.2), doubleArrayOf(2.3)) 

Также возможно вставить несколько инициализаторов Array со следующим constructor :

 public inline constructor(size: Int, init: (Int) -> T) 

Вызов может выглядеть так:

 val doubles2: Array<DoubleArray> = Array(2) { i -> DoubleArray(2) { j -> j + 1 * (i + 1).toDouble() } } //[[1.0, 2.0], [2.0, 3.0]] 

В будущем вы можете попробовать использовать конвертер Kotlin. Я взял ваш код и провел его через конвертер и получил следующий рабочий код, который согласуется с ответом.

 internal var json = "[[1.2, 4.1], [3.4, 4.4]]" internal var variable = Gson().fromJson(json, Array<DoubleArray>::class.java) 

Вы можете смешать arrayOf и doubleArrayOf для этого случая.

 arrayOf( doubleArrayOf(1.2, 4.1) doubleArrayOf(3.4, 4.4) )