在 Kotlin 中将可变实时数据解析为数组

Parse Mutable Live Data to Array in Kotlin

有一个 mutableLiveData Holding 2 数组 "deal" 和 "category" 我需要在不同的适配器中解析它。

有没有一种方法可以将 1 个可变实时数据转换为 2 个数组,然后将它们解析为两个不同的适配器

假设有 MutableVariable Name se

private lateinit var mHomePojo: MutableLiveData<List<HomePojo>>

解析 Json 如下

 {
   "status": 0,
   "response": "success",
   "category": [
     {
       "categoryName": "demo",
       "categoryDesc": "demo"
     },
     {
       "categoryName": "demo1",
       "categoryDesc": "demo"
     }
   ],
   "deal": [
     {
       "dealImg": "https://aiotechnology.in/Aditechweb/upload/153102117.jpg",
       "dealDesc": "gd",
       "dealStartDate": "2019-10-18",
       "dealEndDate": "2019-10-19"
     }
   ]
 }

有什么方法可以将 private lateinit var mHomePojo: MutableLiveData<List<HomePojo>> 解析为 lateinit var mDealModel: MutableLiveData<List<DealModel>> 并且 lateinit var mCategoryModel: MutableLiveData<List<CategoryModel>>

我是 MVVM 的新手,请帮忙

我认为 Transformations 可以帮助您将家庭实时数据分离为两个具有指定属性的独立实时数据对象。下面是一段代码。 (注意:例如未使用 lateinit var)

private val homeLiveData: LiveData<HomePojo> = MutableLiveData<HomePojo>()

//Category Live data
private val categoryPojo = Transformations.map(homeLiveData) {
    it.category
}

//Deal live data
private val dealPojo = Transformations.map(homeLiveData) {
    it.deal
}

data class HomePojo(
   /*-- Other fields --*/
   val category: List<CategoryPojo>? = null,
   val deal: List<DealPojo>? = null)


data class CategoryPojo(
    val categoryName: String? = null,
    val categoryDesc: String? = null)

data class DealPojo(
    val dealImg: String? = null,
    val dealDesc: String? = null,
    val dealStartDate: String? = null,
    val dealEndDate: String? = null)