анализировать JSON-объект, используя модификацию в kotlin - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь отобразить данные json с помощью модифицированной библиотеки в kotlin

Это мой Json:

[
  {
    "login": "mojombo",
    "id": 1,

  },
  {
    "login": "defunkt",
    "id": 2,
    }
]

Моя основная деятельность

 call.enqueue(object : Callback<UserResponse> {
        override fun onResponse(call: Call<UserResponse>, response: Response<UserResponse>) {
            Log.e("list","list")
            val countrylist = response.body()
            for (size in response.body()) {
                System.out.println(size.toString())
            }

            // var listOfMovies: List<UserResponse> = response.body()?.results!!
           // myCustomAdapter = UserListAdapter(applicationContext, listOfMovies)
          //  recyclerView.setAdapter(myCustomAdapter)
            progressBar.visibility = View.GONE
        }

        override fun onFailure(call: Call<UserResponse>?, t: Throwable?) {
            progressBar.visibility = View.GONE
            Log.e("list", t.toString())
        }
    })

1 Ответ

0 голосов
/ 15 февраля 2019

Это то, что мы имеем в нашем приложении

object GetFAQsAPI {

private val LOG_TAG = GetFAQsAPI.javaClass.simpleName

interface ThisCallback {

    fun onSuccess(getFAQs: GetFAQs)

    fun onFailure(failureMessage: String)

    fun onError(errorMessage: String)
}

/* POST */
fun postData(jo: JsonObject, callback: GetFAQsAPI.ThisCallback) {
    val call = Service.getService().get_faqs(jo)
    call.enqueue(object : Callback<JsonObject> {

        override fun onResponse(call: Call<JsonObject>, response: Response<JsonObject>) {

            //Log.e(LOG_TAG, response.body().toString());

            try {
                if (response.body()?.get("success")!!.asBoolean) {

                    val gson = GsonBuilder().setPrettyPrinting().create()
                    val getFAQs = gson.fromJson(response.body(), GetFAQs::class.java)

                    callback.onSuccess(getFAQs)

                } else {
                    Log.e(LOG_TAG, "else")

                    val error = response.body()!!.get("err").asString

                    callback.onError(error)
                }

            } catch (e: Exception) {
                Log.e(LOG_TAG, "exception" + e.localizedMessage)

                callback.onFailure(e.message!!)
            }

        }

        override fun onFailure(call: Call<JsonObject>, t: Throwable) {
            Log.e(LOG_TAG, "onFailure: " + t.message)

            callback.onFailure(t.message!!)

        }
    })

}

}

Вот как мы называем это из нашего фрагмента - getFAQs - это анализируемый объект.

private fun getFAQsAPI() {

    showLoading(true)

    val jo = JsonObject().apply {
        addProperty("faq_category", "admin")
    }

    GetFAQsAPI.postData(jo, object : GetFAQsAPI.ThisCallback {
        override fun onSuccess(getFAQs: GetFAQs) {
            Log.i(LOG_TAG, "onSuccess")

            showLoading(false)

            updateUI(getFAQs)
        }

        override fun onFailure(failureMessage: String) {
            Log.e(LOG_TAG, failureMessage)
        }

        override fun onError(errorMessage: String) {
            Log.e(LOG_TAG, errorMessage)
        }
    })
}

Надеюсь, что поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...