API를 사용하여 처음으로 (그리고 kotlin을 사용하는 경우) API에서 모델 객체로 데이터를 가져 오는 방법을 알아내는 데 어려움을 겪고 누군가가 나를 가리킬 수 있기를 바랬습니다. 올바른 방향. 아래 샘플 코드.okHTTP 및 GSON을 사용하여 API에서 데이터를 가져옴
val request = Request.Builder().header("X-Mashape-Key", keyVal).url(url).build()
//make request client
val client = OkHttpClient()
//create request
client.newCall(request).enqueue(object: Callback {
override fun onResponse(call: Call?, response: Response?) {
//grab as string, works fine
val body = response?.body()?.string()
//make my builder, works fine
val gson = GsonBuilder().create()
// to pass type of class to kotlin ::
val cardFeed = gson.fromJson(body, CardFeed::class.java)
}
override fun onFailure(call: Call?, e: IOException?) {
println("Failed to execute request")
}
})
}
그 모든 디버그 의도 한대로, 내가 문자열을 얻고, 그것을 볼 수 있지만 여전히/카드 오브젝트 cardFeed에 널 덤프 다음 사용하여 작동하는 것 같다. "{기본": [{ "키": "값"등
내가 있으리라 믿고있어
몸을 다음과 같이
class CardFeed(val cards: List<Card>)
class Card(val cardId: String, val name: String, val text: String, val flavor: String)
내가 API에서지고있어 몸 문자열 읽기 [무엇이 나를 걸려 넘어 뜨리고 있지만 그것을 고치는 법을 모르겠습니다.
올바른 방향으로 아이디어 나 전환을하면 크게 감사 드리며 미리 감사드립니다.
아! 그것을 얻었습니다. 나는 cardFeed val Basic을 JSON 객체의 최상위 레벨에 맞추기 위해 이름을 지어야했습니다. – Venaseph