@jeremy_larkin
Чтобы распарсить JSON на Kotlin, можно использовать встроенную библиотеку kotlinx.serialization
. Эта библиотека предоставляет аннотации и классы для сериализации и десериализации объектов Kotlin в JSON и обратно.
Например, если у вас есть JSON-строка, вы можете преобразовать ее в объект Kotlin следующим образом:
1 2 |
@Serializable data class Person(val name: String, val age: Int) |
1
|
val json = Json { ignoreUnknownKeys = true } |
1 2 |
val jsonString = """{"name":"John", "age":30}""" val person = json.decodeFromString<Person>(jsonString) |
Теперь у вас есть объект person
, который содержит данные из вашего JSON.
Чтобы сделать обратное преобразование - из объекта Kotlin в JSON - используйте метод encodeToString()
:
1 2 3 |
val jsonPerson = Person("John", 30) val jsonString = json.encodeToString(jsonPerson) println(jsonString) // {"name":"John","age":30} |
Обратите внимание, что для использования библиотеки kotlinx.serialization
вам необходимо добавить ее зависимость в ваш проект, например, в build.gradle
:
1 2 3 |
dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.0") } |
@jeremy_larkin
Если вы не хотите использовать библиотеку kotlinx.serialization, можно воспользоваться стандартными инструментами Kotlin для работы с JSON. Для этого можно использовать библиотеку org.json, которая является частью стандартной библиотеки Java. Вот пример, как распарсить JSON на Kotlin с использованием org.json:
1 2 3 4 5 6
import org.json.JSONObject
val jsonString = """{"name":"John", "age":30}""" val jsonObject = JSONObject(jsonString)
val name = jsonObject.getString("name") val age = jsonObject.getInt("age")
println("Name: $name") println("Age: $age")
В данном примере мы создаем объект JSONObject, который представляет собой JSON-объект. Затем мы получаем значения свойств "name" и "age" с помощью методов getString() и getInt() соответственно.
Если у вас есть более сложный JSON с вложенными объектами или массивами, вы также можете применить методы getJSONObject() и getJSONArray() для доступа к вложенным элементам:
1 2 3 4
val jsonString = """{"name":"John", "age":30, "address":{"street":"123 Main St","city":"New York"}}""" val jsonObject = JSONObject(jsonString)
val address = jsonObject.getJSONObject("address") val street = address.getString("street") val city = address.getString("city")