Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何访问结构的各个值?_Json_Swift - Fatal编程技术网

Json 如何访问结构的各个值?

Json 如何访问结构的各个值?,json,swift,Json,Swift,我试图在解析JSON数据并将其分配给Question之后打印结果的各个成员 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

我试图在解析JSON数据并将其分配给Question之后打印结果的各个成员

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"])]

如何访问“类别”或“问题”等单个成员?

结果
是一个数组。您必须枚举数组

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


结果
是一个数组。您必须枚举数组

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


您必须首先访问
问题的单个元素。结果
,如下所示:

question.results[n] // where n represents a valid array index number
然后要访问单个
Results
结构的特定属性,可以使用与访问任何其他结构的属性值相同的方法。例如,如果要获取
结果
结构的
类别
成员的值,可以执行以下操作:

question.results[n].category
print(question.results[n].category)
然后,如果您想打印该特定成员的值(同样,以
类别
成员为例),您可以执行以下操作:

question.results[n].category
print(question.results[n].category)
现在,如果要打印
问题.Results
数组中每个
结果
结构的
类别
成员的值,则可以使用如下for循环:

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

希望有帮助。

您必须首先访问问题的单个元素。结果如下:

question.results[n] // where n represents a valid array index number
然后要访问单个
Results
结构的特定属性,可以使用与访问任何其他结构的属性值相同的方法。例如,如果要获取
结果
结构的
类别
成员的值,可以执行以下操作:

question.results[n].category
print(question.results[n].category)
然后,如果您想打印该特定成员的值(同样,以
类别
成员为例),您可以执行以下操作:

question.results[n].category
print(question.results[n].category)
现在,如果要打印
问题.Results
数组中每个
结果
结构的
类别
成员的值,则可以使用如下for循环:

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

希望能有所帮助。

谢谢。快速跟进问题,我正在尝试访问URLSession.shared.dataTask(with:url)之外的元素。我在外部创建了一个变量,并试图将其传入,但这不起作用。我不确定自己是否完全理解您的意思,尽管我在Swift中使用JSON的知识非常有限,因此我可能不是最好的提问者。也许这些链接中的某个可以帮助你:或者谢谢你!找到了,太好了!很高兴听到这个消息,谢谢。快速跟进问题,我正在尝试访问URLSession.shared.dataTask(with:url)之外的元素。我在外部创建了一个变量,并试图将其传入,但这不起作用。我不确定自己是否完全理解您的意思,尽管我在Swift中使用JSON的知识非常有限,因此我可能不是最好的提问者。也许这些链接中的某个可以帮助你:或者谢谢你!找到了,太好了!很高兴听到这个消息,谢谢。快速跟进问题,我正在尝试访问URLSession.shared.dataTask(with:url)之外的元素。我在外部创建了一个变量,并尝试将其传入,但没有成功。
dataTask(with:url)
异步工作。完成块稍后返回。哦,好的。我能弄明白。谢谢大家!!多谢各位。快速跟进问题,我正在尝试访问URLSession.shared.dataTask(with:url)之外的元素。我在外部创建了一个变量,并尝试将其传入,但没有成功。
dataTask(with:url)
异步工作。完成块稍后返回。哦,好的。我能弄明白。谢谢大家!!