【发布时间】:2018-09-10 14:20:45
【问题描述】:
我是编程新手, 我正在尝试从 yahoo 天气 api 中获取日出/日落时间并在 Ui 上祝酒
(我正在使用 gson 和 anko 库) 这是我的主要活动代码:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
fetchJson()
}
fun fetchJson(){
val url = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22nome%2C%20ak%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"
val request = Request.Builder().url(url).build()
val client = OkHttpClient()
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call?, e: IOException?) {
toast("Failed to execute request")
}
override fun onResponse(call: Call?, response: Response?) {
val body = response?.body()?.string()
println(body)
val gson = GsonBuilder().create()
val Info = gson.fromJson(body, astronomy::class.java)
runOnUiThread {
// info.sunrise is returning null ???????
toast("this is running from UiThread ${Info.sunrise}")
}
}
})
}
}
class astronomy(val sunrise: String, val sunset: String)
我应该在哪里解决?
谢谢
【问题讨论】:
-
你的天文学课是什么样子的?
-
我是按照教程做的,但是教程是要解析为回收站视图,而我的是单个对象,这是我的天文学课。 : 天文学类(val 日出:字符串,val 日落:字符串)
-
好吧,我相信这不足以获得日出/日落时间。使用:jsonschema2pojo.org 将您的 Json 输出转换为 POJO。或者,在没有 Gson 的情况下按数组获取字符串数组..
-
@ʍѳђઽ૯ท 谢谢,但我希望能够使用文本框更改城市,(稍后我将编辑 url)