Я новичок в Котлине.Я получаю эту ошибку при разборе json.
Неустранимое исключение: OkHttp Dispatcher
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Ожидается BEGIN_OBJECT, но в строке 1 STRINGпуть к столбцу 2 в com.google.gson.internal.bind.ReflectiveTypeAdapterFactory $ Adapter.read (ReflectiveTypeAdapterFactory.java:226)
, затем укажите эту строку
val homeFeed = gson.fromJson (body, list :: class.java)
Мой код:
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import com.google.gson.GsonBuilder
import com.google.gson.annotations.SerializedName
import kotlinx.android.synthetic.main.activity_main.*
import okhttp3.*
import java.io.IOException
import java.util.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
okht()
}
fun okht(){
val url = "https://jsonplaceholder.typicode.com/posts"
val request = Request.Builder().url(url).build()
val client = OkHttpClient()
client.newCall(request).enqueue(object: Callback{
override fun onResponse(call: Call, response: Response) {
val body = response?.body()?.string()
val gson = GsonBuilder().create()
val homeFeed = gson.fromJson(body, list::class.java)
println(homeFeed)
}
override fun onFailure(call: Call, e: IOException) {
println("fail")
}
})
}
}
class list(val userId: Int, val id: Int, val title: String, val body: String)