如何访问结构的各个值?

时间:2017-10-23 21:10:45

标签: json swift

我在解析JSON数据并将其分配给Question后尝试打印Results的各个成员。

struct Question: Decodable
{
    let response_code: Int
    let results: [Results]
}

struct Results: Decodable
{
    let category: String
    let question: String
    let correct_answer: String
    let incorrect_answers: [String]   
}

我尝试使用:

print(question.results)

但我明白了:

[Trivia_Game.Results(category: "Entertainment: Music", question: "Which of the following bands is Tom DeLonge not a part of?", correct_answer: "+44", incorrect_answers: ["Box Car Racer", "Blink-182", "Angels & Airwaves"])]

如何访问各个成员,例如"类别"或"问题"?

2 个答案:

答案 0 :(得分:1)

child3是一个数组。你必须枚举数组

results

let results = question.results
for result in results {
    print(result.category, result.question)
}

答案 1 :(得分:1)

您必须首先访问question.results的单个元素,如下所示:

question.results[n] // where n represents a valid array index number

然后,要访问该单个Results结构的特定属性,您将以与访问任何其他结构的属性值相同的方式执行此操作。例如,如果您想获得category结构的Results成员的值,您可以这样做:

question.results[n].category

然后,如果您想打印该特定成员的值(再次使用category成员作为示例),您可以这样做:

print(question.results[n].category)

现在,如果您想为category数组中的每个Results结构打印出question.results成员的值,那么您可以像这样使用for循环:

for result in question.results {
    print(result.category)
}

希望有所帮助。