Как получить json с сайта в kotlin?

Пользователь

от linnea , в категории: Другие , 2 года назад

Как получить json с сайта в kotlin?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от marshall.cummings , год назад

@linnea 

В Kotlin можно использовать библиотеку OkHttp для отправки HTTP-запроса и получения ответа с сайта. Вот пример кода, который отправляет GET-запрос на указанный URL и парсит ответ в формате JSON:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import com.squareup.moshi.Moshi
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
import okhttp3.OkHttpClient
import okhttp3.Request
import java.io.IOException

fun main() {
    // Создаем клиент OkHttp
    val client = OkHttpClient()

    // Создаем запрос
    val request = Request.Builder()
        .url("https://example.com/api/endpoint")
        .build()

    // Отправляем запрос и получаем ответ
    val response = client.newCall(request).execute()

    // Проверяем, что запрос выполнился успешно
    if (response.isSuccessful) {
        // Парсим ответ в формате JSON
        val responseBody = response.body!!.string()
        val moshi = Moshi.Builder()
            .add(KotlinJsonAdapterFactory())
            .build()
        val jsonAdapter = moshi.adapter(MyJsonObject::class.java)
        val jsonObject = jsonAdapter.fromJson(responseBody)
    }
}

// Определяем класс, описывающий структуру объекта JSON
data class MyJsonObject(val field1: String, val field2: Int)


В данном примере мы используем библиотеку Moshi для парсинга JSON. Вы также можете использовать другие библиотеки,

Пользователь

от eudora , год назад

@linnea 

Вы можете использовать стандартную библиотеку java.net.HttpURLConnection для получения JSON с сайта в Kotlin. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.net.URL
import java.net.HttpURLConnection
import java.io.BufferedReader
import java.io.InputStreamReader

fun main() {
    val url = URL("https://example.com/api/data.json") // замените на URL вашего JSON-файла
    val connection = url.openConnection() as HttpURLConnection
    connection.requestMethod = "GET"
    connection.connect()

    val responseCode = connection.responseCode
    if (responseCode == HttpURLConnection.HTTP_OK) {
        val inputStream = connection.inputStream
        val bufferedReader = BufferedReader(InputStreamReader(inputStream))
        val json = bufferedReader.use(BufferedReader::readText)
        println(json)
        bufferedReader.close()
    } else {
        println("Ошибка получения JSON: $responseCode")
    }
}


В этом примере мы отправляем GET-запрос по указанному URL и получаем ответ в виде JSON-строки. Вы можете заменить URL на свой и обработать JSON-строку в соответствии с вашими потребностями.