如何在Android上使用Kotlin解析网址中的JSON?

时间:2017-07-13 05:14:35

标签: android json kotlin

我一直试图从网址解析JSON几个小时但是我觉得我太傻了 我试过了

val result = URL("http://date.jsontest.com/").readText()

但它崩溃了

  

java.net.MalformedURLException:no protocol:date.jsontest.com

我尝试过Klaxon的图书馆

fun parse(name: String) : Any? {    
    val cls = Parser::class.java
    return cls.getResourceAsStream(name)?.let { 
        inputStream -> return Parser().parse(inputStream)
    }
}    
val obj = parse("http://date.jsontest.com/") as JsonObject

但它也崩溃了

  

kotlin.TypeCastException:null无法转换为非null类型com.beust.klaxon.JsonObject

有人可以用Kotlin写一个最简单的方法来解析来自这个链接的数据http://date.jsontest.com/

1 个答案:

答案 0 :(得分:1)

很难说你为什么会收到错误。由于这条线是正确的并且正常工作。

val result = URL("http://date.jsontest.com/").readText()

用于解析方法。它不起作用,因为它需要一个JSON文件的路径,但是得到一个URL字符串。

使用Klaxon的最简单的例子就是这个。

val result = URL("http://date.jsontest.com/").readText()
val parser: Parser = Parser()
val stringBuilder: StringBuilder = StringBuilder(result)
val json: JsonObject = parser.parse(stringBuilder) as JsonObject
println("Time : ${json.string("time")}, Since epoch : ${json.long("milliseconds_since_epoch")}, Date : ${json.string("date")}, ")