使用Gson和Anko

问题描述 投票:0回答:1

我有一个JSON,我想在我的应用程序中使用它的数据,但我无法正确解析JSON,所以我可以使用JSON中的值来设置片段中的不同按钮文本。问题是每次我在feed.first_film时我都会变空。 我正在使用Gson。

我的JSON

{
"data": {
    "films": [
        {
            "film_id": "8",
            "first_film": "Dunkirk",
            "first_thumb": "firstlog.jpg",
            "first_desc": "Action- Drama-History",
            "second_film": "The Good Doctor S1 E11",
            "second_thumb": "secondlog.png",
            "second_desc": "Drama",
            "third_film": "Pirates Of The Caribbean Dead Men Tell No Tales",
            "third_thumb": "thirdlog.png",
            "third_desc": "Action- Fantasy-Adventure",
        }
    ]
}
}

我的主要活动.kt

class MoviesFrag : Fragment(), View.OnClickListener {
    var moviesURL: String? = null
    var ds: String? = null
    val url = "http://sign.aya.sy/mobi/index.php/welcome/get_films_det"
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        doAsync() {
            firstEx()
            uiThread {
                activity!!.longToast(ds)
            }
        }
        val view = inflater.inflate(R.layout.movies_frag, container, false)
        return view
    }
    fun firstEx() : Films{
        val moviesJsonString = URL(url).readText()
        Log.i("Json", moviesJsonString)
        val gson = GsonBuilder().create()
        val feed = gson.fromJson(moviesJsonString, Films::class.java)
        ds = feed.first_film
        return feed
    }

我的DataClass.kt

data class MoviesData(val data: Data)

data class Data(val films: List<Films>)
data class Films(val film_id: String,
                 val first_film: String,
                 val first_thumb: String,
                 val first_desc: String,
                 val second_film: String,
                 val second_thumb: String,
                 val second_desc: String,
                 val third_film: String,
                 val third_thumb: String,
                 val third_desc: String,
                 val desc: String)
android json kotlin gson
1个回答
1
投票

更改型号名称MoviesData表格Films

 val moviesData= gson.fromJson(moviesJsonString, MoviesData::class.java)//Here you get moviesData array .
© www.soinside.com 2019 - 2024. All rights reserved.