使用Gson和Anko
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Gson和Anko相关的知识,希望对你有一定的参考价值。
我有一个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)
答案
更改型号名称MoviesData
表格Films
,
val moviesData= gson.fromJson(moviesJsonString, MoviesData::class.java)//Here you get moviesData array .
以上是关于使用Gson和Anko的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Kotlin 中使用 anko 删除除最新 10 条记录之外的所有记录?
在Android中用Kotlin的Anko运行后台任务(KAD 09)