我是编程新手, 我试图从Yahoo Weather API中获取日出/日落时间,并在Ui上烤面包
(我正在使用gson和anko库) 这是我的主要活动代码:
import QtQuick 2.7
import QtQuick.Controls 2.4
ApplicationWindow {
title: "Qt Quick Controls Gallery"
width: 640
height: 480
visible: true // <---
}
我应该在哪里修理?
谢谢
答案 0 :(得分:0)
嘿,易卜拉欣·科什诺德!
欢迎使用StackOverflow。问题似乎是,您尚未为天文学的父对象创建POJO(类)。如果只想使用Gson解析所有内容,则必须创建用于“查询”,“结果”,“通道”的对象,然后在通道内部可以具有天文对象。
例如,您可能会有类似的东西。
class Query(val results: List<Channel>?)
class Channel(val astronomy: astronomy?) // astronomy? is the class you have posted.
然后您可以解析所有此类内容
val query = gson.fromJson(body, astronomy::class.java)
val astronomy = query.results?.astronomy
答案 1 :(得分:0)
您从该Yahoo!得到的答复API不仅限于天文学部分。您有两个选择(一个实选项和一个用于检查事物的临时选项):
Query
类,其属性为count
,created
,lang
和{{ 1}})。这将是更好的方法,因为您将在处理过程中的每一步都处理真实的类。results
data class Query(val count: Int?, val created: String?, val lang: String?, val results: Results?)
data class Results(val channel: Channel?)
//Channel should include more fields for the rest of the data
data class Channel(val astronomy: Astronomy?)
data class Astronomy(val sunrise: String?, val sunset: String?)
(这是GSON提供的类)中,并遍历该对象(JsonObject
-> query
-> results
-> { {1}}-> channel
和astronomy
)。这不是正确的方法,但可以确保输入正确的数据:sunrise