Разбор JSON с паролем забавного <T> Kotlin JS (текст: String): T`?

Как я могу использовать

fun <T> parse(text: String): T

разобрать JSON в Kotlin JS?

Например, как я могу разобрать эту строку JSON?

{
"couchdb": "Welcome",
"version": "2.0.0",
"vendor": {
    "name": "The Apache Software Foundation"
}
}

1 ответ

Решение

Это зависит от того, что вы хотите сделать с проанализированным JSON. Самый простой способ был бы

val jsonAny = JSON.parse<Any>(text);

Или вы можете проанализировать его как Json, который позволит вам получить доступ к свойствам:

val json = JSON.parse<Json>(text);
println(json["version"]);

Или - если вы хотите использовать строгую типизацию kotlin - вы можете определить класс, который представляет структуру, и использовать ее свойства:

data class CouchDB(val version:String)

val jsonCouchDb = JSON.parse<CouchDB>(text);
println(jsonCouchDb.version)

В конце концов, это всегда будет один и тот же объект JS, возвращаемый методом javascript JSON.parse(), Kotlin просто вводит здесь типы.

Другие вопросы по тегам