如何修复嵌套数组

How to fix nested arrays

我有一个数据模型class类别模型:

@Serializable
data class CategoryModel (val name: String, val items: ArrayList<String>) : java.io.Serializable {}

我正在尝试使用序列化,这样我就可以将这个 class 中的数据存储到一个 Bundle 中,以便与另一个 class:

共享
    private fun displayCategoryItems(cat: CategoryModel) {

        val categoryItemsIntent = Intent(this, CategoryItemsActivity::class.java)
        val data: String = Json.encodeToString(cat)
        categoryItemsIntent.putExtra(categoryObjKey, data)

        startActivityForResult(categoryItemsIntent,mainActivityReqCode)

    }

我注意到它开始用数组括号做奇怪的事情,看起来当我尝试反序列化它时,项目 ArrayList 正在转换为字符串。所以而不是

"items": "[1, 2]"

我明白了

"items":["[1, [2]]"]

我做错了什么?

把实现了Serializable的对象放在extras里就好了:

    private fun displayCategoryItems(cat: CategoryModel) {

            val categoryItemsIntent = Intent(this, 
            CategoryItemsActivity::class.java)?.apply{
                   putExtra(categoryObjKey, data)
            }

           startActivityForResult(categoryItemsIntent,mainActivityReqCode)

    }

或者这样传递:

    private fun displayCategoryItems(cat: Any) {
            val categoryItemsIntent = Intent(this, 
            CategoryItemsActivity::class.java)?.apply{
                   putExtra(categoryObjKey, cat as CategoryModel)
            }

           startActivityForResult(categoryItemsIntent,mainActivityReqCode)

    }