在 Kotlin 中显示 JSON 数据

Show JSON Data in Kotlin

我想将 JSON 数据放入 material 卡片小部件(见图)。在询问之前,我也做了自己的研究 - 但是,我似乎无法修复它。我尝试的所有操作都以更多错误代码告终。

现在,我只是想通过使用 Log 获得正确的输出。稍后,我想将 JSON 数据放入卡片中。但是,这是以后的问题。

希望能为您提供足够的信息;这是 JSON 文件的位置:

代码

import getJsonDataFromAsset
import kotlinx.serialization.Serializable
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json

@Serializable
data class Item (
    val id: Int? = null,
    val image: String? = null,
    val title: String? = null,
    val description: String? = null,
    val longDescription: String? = null,
    val company: String? = null,
    val price: Int? = null,
    val duration: Int? = null,
    val valued: String? = null
)

    private var json = Json {
        ignoreUnknownKeys = true
    }
      
  val jsonFileString = getJsonDataFromAsset(applicationContext, "activities.json")
        val obj = json.decodeFromString<Item>(jsonFileString.toString())


            if (jsonFileString != null){
                Log.i("data", jsonFileString)
                Log.i("obj.entertainment", obj.description.toString())
            } else {
                Log.e("catch", "Error")
            }

JSON-文件的开头。

我想访问项目数组中的 objects/properties。

{
    "items" : [
        {
            "id": 0, 
            "image": "img/glowgolf.png",
            "title": "Glowgolf", 
            "description": "Activity description", 
            "longDescription": "Activity description descriptionActivity description descriptionActivity description descriptionActivity description description",
            "company": "Friend", 
            "price": 25, 
            "duration": 2, 
            "valued": ""
        }
...

输出

I/obj.entertainment: null

再尝试几次后,以下代码显示了所需的输出。

Log.i("obj.entertainment", obj.items[0].title.toString())

输出:Glowgolf

要将其放入您的视图中,请添加 val titleActivityCard = findViewById<TextView>(R.id.titleFirstCard)titleActivityCard.text = obj.items[0].toString()

欢迎更好的回答,但问题已关闭。