解析JSON数据
- 添加依赖:
在
build.gradle
文件中添加Gson
库以及Retrofit
对Gson
的转换器依赖:
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.google.code.gson:gson:2.8.6'
- 配置Retrofit:
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
val gson: Gson = GsonBuilder()
.setLenient()
.create()
val retrofit = Retrofit.Builder()
.baseUrl("https://example.com/api/")
.addConverterFactory(GsonConverterFactory.create(gson))
.client(OkHttpClient())
.build()
- 示例代码:
假设响应数据对应的
Data
类:
data class Data(val id: Int, val name: String)
interface ApiService {
@GET("data")
suspend fun getData(): Data
}
val apiService = retrofit.create(ApiService::class.java)
suspend fun main() {
val response = apiService.getData()
println(response.name)
}
解析XML数据
- 添加依赖:
在
build.gradle
文件中添加Simple XML
库以及Retrofit
对Simple XML
的转换器依赖:
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-simplexml:2.9.0'
implementation 'org.simpleframework:simple-xml:2.7.1'
- 配置Retrofit:
import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.converter.simplexml.SimpleXmlConverterFactory
val retrofit = Retrofit.Builder()
.baseUrl("https://example.com/api/")
.addConverterFactory(SimpleXmlConverterFactory.create())
.client(OkHttpClient())
.build()
- 示例代码:
假设响应XML数据对应的
Data
类:
import org.simpleframework.xml.Element
import org.simpleframework.xml.Root
@Root(name = "data", strict = false)
data class Data(
@field:Element(name = "id")
val id: Int,
@field:Element(name = "name")
val name: String
)
interface ApiService {
@GET("data")
suspend fun getData(): Data
}
val apiService = retrofit.create(ApiService::class.java)
suspend fun main() {
val response = apiService.getData()
println(response.name)
}