Ошибка: используйте JsonReader.setLenient (true) для принятия искаженного JSON в строке 1, столбец 1, путь $ при модернизации - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь поймать ответ API с модификацией в kotlin android, но всегда получаю эту ошибку

Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $

Я пытаюсь найти решение и нашел это

но не решить мою проблему

это мой ответ API

enter image description here

и моя модель

@Parcelize
class ProdekselResponse(
    var status : String,
    var data : ArrayList<Prodeksel> = arrayListOf<Prodeksel>()

) : Parcelable

@Parcelize
class Prodeksel(
    var id : String,
    var nomor_kk : String,
    var nik_kk : String,
    var nama_kk : String
) : Parcelable

мой код запроса в viewmodel

message.postValue("loading")
    val Client = Client()
    val apiRoute: Route = Client.getClient()!!.create(Route::class.java)
    apiRoute.getProdeksel(user_id.toString(),page.toString()).enqueue(object :
        Callback<ProdekselResponse> {
        override fun onResponse(call: Call<ProdekselResponse>, response: Response<ProdekselResponse>) {

            if(response.code() == 200) {
                var data = response.body().data
                listProdeksel.postValue(data)
                message.postValue("success")
            } else {
                message.postValue("error")
            }
        }
        override fun onFailure(call: Call<ProdekselResponse>, t: Throwable){
            Log.e("Ops", t.message)
            message.postValue("error")

        }
    })

    return message

мой код модификации

val interceptor = HttpLoggingInterceptor()
        interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        val okHttpClient = OkHttpClient.Builder()
            .readTimeout(60, TimeUnit.SECONDS)
            .connectTimeout(60, TimeUnit.SECONDS)
            .addInterceptor(interceptor)
            .build()
        retrofit = Retrofit.Builder()
            .baseUrl(BASE_URL)
            .client(okHttpClient)
            .addConverterFactory(GsonConverterFactory.create())
            .build()

@GET("prodeskel/mobile/data")
fun getProdeksel(@Query("user_id")user_id : String,@Query("page")page : String?): Call<ProdekselResponse>

я использую laravel в бэкэнде API

return response()->json(['status' => 'Resource found', 'data'=>$datas], $this->successStatus);
...