面试题答案
一键面试- 定义数据模型:
- 使用Kotlin的数据类来表示JSON结构。对于多层嵌套的情况,需要一层一层地定义。
- 例如,假设服务器返回的JSON数据如下:
{ "outerObject": { "nestedArray": [ { "innerObject": { "value": "exampleValue" } } ] } }
- 定义数据模型:
data class OuterData( val outerObject: OuterObject ) data class OuterObject( val nestedArray: List<NestedArrayItem> ) data class NestedArrayItem( val innerObject: InnerObject ) data class InnerObject( val value: String )
- 解析过程(使用Retrofit):
- 首先,定义Retrofit的API接口:
interface ApiService { @GET("yourEndpoint") suspend fun getComplexData(): OuterData }
- 然后,在Retrofit的创建和调用中解析数据:
val retrofit = Retrofit.Builder() .baseUrl("yourBaseUrl") .addConverterFactory(GsonConverterFactory.create()) .build() val apiService = retrofit.create(ApiService::class.java) suspend fun fetchData() { try { val response = apiService.getComplexData() // 这里response就是解析后的OuterData对象,可以访问其中的数据 val value = response.outerObject.nestedArray.first().innerObject.value println("解析后的值: $value") } catch (e: Exception) { e.printStackTrace() } }
- 在上述代码中,通过Retrofit的
GsonConverterFactory
将返回的JSON数据自动解析为定义好的数据类对象,从而优雅地处理复杂的JSON结构。