У меня проблема с преобразованием модели Location в строку JSON.

Когда я пытаюсь преобразовать его с помощью Gson в строку, я теряю поля широты и долготы.

...

location.lat = 40.00000 // example
location.lng = 29.00000 // example

val jsonString = Gson().toJson(location)
val newLocation = Gson().fromJson(jsonString, Location::class.java)

Log.d(">>>>>>", "location lat is ${newLocation.lat} location lng is ${newLocation.lng} )

Результат 0.0 и 0.0

В чем проблема?

Обновить

Я знаю, что с помощью специального класса я могу справиться с этой проблемой, но мне любопытно, почему класс Location не работает.

2
FarshidABZ 29 Апр 2020 в 16:22
Странный случай. Вы можете создать класс модели, который удерживает lat long.
 – 
IntelliJ Amiya
29 Апр 2020 в 16:47
1
Да, я сделал, но я хочу знать проблему.
 – 
FarshidABZ
29 Апр 2020 в 16:48

1 ответ

Используя класс данных kotlin, ваш код должен работать правильно.

data class Location(val lat: Double, val lng: Double)
val location = Location(40.0,29.0)
val locationJson = Gson().toJson(location)
val newLocation = Gson().fromJson(locationJson, Location::class.java)

Log.d(">>>>>>", "${newLocation.lat} : ${newLocation.lng}")

0
lbasek 29 Апр 2020 в 16:53
Он знает этот процесс. Ему любопытно, почему класс Location (не пользовательский класс) не работает
 – 
IntelliJ Amiya
29 Апр 2020 в 16:56
См. раздел комментариев @IntelliJAmiya Yes I did, but I wanna know the problem.
 – 
IntelliJ Amiya
29 Апр 2020 в 16:58