Как я могу разобрать JSON так, чтобы, если структура не такая, как я задумал, она изящно не работает? - PullRequest
0 голосов
/ 31 октября 2019

Ссылка: https://bytes.babbel.com/en/articles/2018-05-25-kotlin-gson-nullability.html

В этой статье рассказывается об одном из недостатков GSON с Kotlin. Если у нас есть такой класс данных, и мы пытаемся его разбить:

data class User(
    val email: String,
    val firstName: String)

fun main(args: Array<String>) {
  val json = """{
    "email": null
    }"""
  val gson = Gson()

  println(gson.fromJson(json, User::class.java).email)
}

, как только мы проанализируем его и используем поле email, мы вернем NullPointerException. Это предполагаемое поведение GSON.

Существует ли библиотека, которая может выдать мне ошибку типа IllegalStateException и проверить, какое поле должно быть обнуляемым? Или есть способ обойти Moshi или GSON или любую другую библиотеку JSON, чтобы я мог получать подобные ошибки?

1 Ответ

0 голосов
/ 31 октября 2019

Gson не дает NullPointerException, если поле отсутствует. Он просто игнорирует отсутствующие поля объекта. Для получения более подробной информации я бы попросил вас поделиться журналом ошибок с исключением и кодом.

...