gson Kotlin:修改列表对象的属性

2o7dmzc5  于 2022-11-06  发布在  Kotlin
关注(0)|答案(1)|浏览(208)

在MutableList中更新/修改对象属性的表达方式是什么?

data class Car(
    var imageUri: Uri,
    var description: String = ""
   )

我希望imageUri值在某个时候为空,同时保留它的描述,所以这是我所尝试的。

Gson().toJson(carList.map { it.imageUri = Uri.EMPTY }) //Clear image URI of all car

但是,当使用Gson将其转换为JSON String表示时,列表变为空。

"[{},{}]"

我可以这样做,但不确定是否是最好的。

carList.map { Gson().toJson(Car(Uri.EMPTY, it.description)) }.toString()
uz75evzq

uz75evzq1#

您可以使用forEach函数来迭代列表中的每个元素,并更改每个元素的属性。例如:

carList.forEach { it.imageUri = Uri.EMPTY }
Gson().toJson(carList)

另一个选项是onEach

Gson().toJson(carList.onEach { it.imageUri = Uri.EMPTY })

它们之间的区别在于,onEach函数在对每个元素执行给定的操作后返回集合本身,而forEach函数不这样做。

相关问题