Android 如何使用JSONArray?

Android 如何使用JSONArray?,android,arrays,json,android-intent,kotlin,Android,Arrays,Json,Android Intent,Kotlin,我在片段中使用json数据。我想将嵌套的jsonArray类型ID用于另一个活动,但我尝试了一些解决方案,但不起作用。我现在该怎么办 HomeFragment for (i in 0 until tur!!.length()) { val film = Movie() var jsonObj = tur.getJSONObject(i)

我在片段中使用json数据。我想将嵌套的jsonArray类型ID用于另一个活动,但我尝试了一些解决方案,但不起作用。我现在该怎么办

HomeFragment

    for (i in 0 until tur!!.length()) {
                                    val film = Movie()
                                    var jsonObj = tur.getJSONObject(i)
                                    film.title = jsonObj.getString("title")
                                    film.releaseDate = jsonObj.getString("release_date")
                                    film.posterPath = jsonObj.getString("poster_path")
                                    film.voteAverage = jsonObj.getString("vote_average")
                                    film.overView = jsonObj.getString("overview")

                                    film.genreIds = jsonObj.getJSONArray("genre_ids").toString() 
<br/>
   **MovieDetailActivity**

                    var baslik = intent.extras.getString("title")
                    tvDetayBaslik.text = baslik
                    var resim = intent.extras.getString("image")
                    var url = "https://image.tmdb.org/t/p/w500"
                    var poster = Glide.with(this).asBitmap().load(url + resim).into(imgPosterDetay)
                    var tarih = intent.extras.getString("date")
                    tvDetayTarih.text = tarih
                    var puan = intent.extras.getString("point")
                    if (puan=="0.0"){
                        tvDetayPuan.text="Puan yok"
                    }else {
                        tvDetayPuan.text = puan.toString()
                    }
                    var aciklama = intent.extras.getString("description")
                    if (aciklama == "") {
                        tvDetayOverview.text = "Açıklama Yapılmamıştır."
                    } else {
                        tvDetayOverview.text = aciklama
                    }
                         var turId=intent.extras.getString("id")
                         tvGenre.text= turId.toString()
for(i在0中直到tur!!.length()){
val film=Movie()
var jsonObj=tur.getJSONObject(i)
film.title=jsonObj.getString(“title”)
film.releaseDate=jsonObj.getString(“发布日期”)
film.posterPath=jsonObj.getString(“海报路径”)
film.voteAverage=jsonObj.getString(“投票平均值”)
film.overView=jsonObj.getString(“overView”)
film.genreIds=jsonObj.getJSONArray(“流派ID”).toString()

**电影活动** var baslik=intent.extras.getString(“标题”) tvDetayBaslik.text=baslik var resim=intent.extras.getString(“图像”) 变量url=”https://image.tmdb.org/t/p/w500" var poster=Glide.with(this).asBitmap().load(url+resim).into(imgPosterDetay) var tarih=intent.extras.getString(“日期”) tvDetayTarih.text=tarih var puan=intent.extras.getString(“点”) 如果(puan==“0.0”){ tvDetayPuan.text=“Puan yok” }否则{ tvDetayPuan.text=puan.toString() } var aciklama=intent.extras.getString(“说明”) 如果(aciklama==“”){ tvDetayOverview.text=“Açıklama Yapılmamıtır。” }否则{ tvDetayOverview.text=aciklama } var turId=intent.extras.getString(“id”) tvGenre.text=turId.toString()
您可以将数据保留为对象,然后使用PutParcelableArrayList

首先在arraylist中的元素上实现Parcelable

shoort示例:

ArrayList<ZAP> zapotrzebowania = new ArrayList<ZAP>();

为了将JSONArray从一个活动传递到另一个活动,您需要将JSONArray转换为字符串,然后将其作为附加项放入Intent中。在接收方,从附加项获取字符串数据并将其转换为JSONArray

关于将嵌套的jsonArray ID传递给另一个活动,有两个选项:

  • 迭代JSON数据,将流派ID收集到arrays或ArrayList中。当数据就绪时,将其传递到目标活动。在接收方,获取数据并显示它

  • 或者传递完整的JSON对象,并作为上面给出的选项#1遍历JSON数据


  • 将jsonarray转换为其字符串值,将其作为额外值放在intent中,在下一个活动中接收它。最后,将其放回jsonarray对象中。
    datatodoc.putParcelableArrayList("dokument", zapotrzebowania);