使用Reform在中查找json数组中的所有值



我需要使用Reform查找并分离json中的值。有了这个代码,我得到了整个身体:

val retrofitCliente = NetworkUtils.getRetrofitInstance("https://aprimorandoapi.000webhostapp.com/")
val endpointiface = retrofitCliente.create(Endpoint::class.java)
val call: Call<JsonObject?>? = endpointiface.getNoticias()
var data = ArrayList<String>()
endpointiface.getNoticias()?.enqueue(object : retrofit2.Callback<JsonObject?> {
override fun onResponse(call: Call<JsonObject?>, response: Response<JsonObject?>) {
val corpo = response.body()
val indice1 = data.indexOf("noticias")
Log.d("Corpo json",+corpo.toString())

}
override fun onFailure(call: Call<JsonObject?>, t: Throwable) {
Log.d("falhoujson","falhajson")
}

但是,当我的方法返回时,我想在ArrayList中插入每个项。我的JSON是:

{
"noticias":[ {
"texto": "Vagas remanescentes para cursos técnicos no CEFORES. Para se inscrever, basta clicar no link abaixo",
"url_imagem": "teste"
},
{
"texto": "PROACE divulga a abertura do 2º Processo Seletivo Simplificado de Monitoria Inclusiva na modalidade de Apoio Pedagógico Remoto para o calendário acadêmico 2022/01",
"url_imagem": "teste"
},
{
"texto": "Projeto fomenta expressão e diálogo de cultura do campo",
"url_imagem": "teste"
},
{
"texto": "Ministério das Relações Exteriores endossa candidatura do Projeto Geopark Uberaba - Terra de Gigantes",
"url_imagem": "teste"
}
]

}

提前谢谢。

将其添加到您的build.gradle(模块(和SyncNow中:

implementation "com.squareup.retrofit2:converter-gson:$retrofit_version"
implementation 'com.google.code.gson:gson:2.8.9'

为您的数据项创建一个数据类

data class Noticia(
@SerializedName("texto")
val text: String,
@SerializedName("url_imagem")
val image: String)

在未来帮自己一个忙,并使用插件"来自JSON的Kotlin数据类"-你会在市场上找到它

定义接口(单独的文件(我不确定@GET("noticias.json"(,我假设只有noticias.json

interface NoticiaApiService {
@GET("noticias.json")
fun getNoticias(): Call<List<Noticia>>
}

拨打电话(这很不干净,但应该可以(

fun getNoticias(){
val retrofit: Retrofit =
Retrofit
.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl("https://aprimorandoapi.000webhostapp.com/")
.build()
val restInterface = retrofit.create(NoticiaApiService::class.java)
val noticiasCall = restInterface.getNoticias()
noticiasCall.enqueue(
object : Callback<List<Noticia>> {
override fun onResponse(call: Call<List<Noticia>>, response: Response<List<Restaurant>>) {
response.body()?.let {
//i assume you will save the values in your viewModel?
//you can also same it somewhere else
noticasLiveData.value = it
}
}
override fun onFailure(call: Call<List<Noticia>>, t: Throwable) {
t.printStackTrace()
}
}
)
}

快乐编码

相关内容

  • 没有找到相关文章

最新更新