Как я могу получить строку, которая будет содержать только последнюю часть ответа POST? - PullRequest
1 голос
/ 17 января 2020

В результате запроса POST я получаю ответ в следующей форме:

D/OkHttp: {"msg":"OK","uploadid":"1dd0ff732ca3b0fc3892180b3d67e0df","ids":["5e20fe2a688c775700049d4c"]}

Как получить строку, которая будет содержать только последнюю часть ответа? Пример: string response = "5e20fe2a688c775700049d4c"

Ответы [ 3 ]

0 голосов
/ 17 января 2020
        response.body?.string()?.let {
            val jsonObject = JSONObject(it)
            val ids = jsonObject.getJSONArray("ids")
            val id = ids.getString(0)
        }

response.body?.string() получает нужную строку json. Затем вы можете проанализировать эту строку, чтобы получить желаемое значение. Библиотека GSON используется чаще, но вы также можете использовать встроенную JSONObject, если не хотите импортировать GSON.

0 голосов
/ 17 января 2020

Используя библиотеку GSON, я получил класс Kotlin из файла JSON и выбрал нулевой элемент.

 // Get Image response Id
    val gson = Gson()
    val imageResponse = gson.fromJson(response.body()?.string(), ImageResponse::class.java)
    imageMediaId  = imageResponse.ids[0]
0 голосов
/ 17 января 2020

От http запроса вы получите ответ, который вы получили. Все, что вам нужно сейчас, это сделать:

 //response is the string you got from server
 JSONObject jobject = new JSONObject(response);
 String s = jobject.getString("ids");

 TextView.setText("Response string is : " + s);

Вы всегда можете проверить, что система читает, используя

 Log.i("TAG",response);
 //and for the element of json
 Log.i("Tag",s);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...