我刚开始熟悉JSON。我有一个类对象,我通过传入JSON初始化。这个对象有一个可能为空的数组,我需要检查它的值。到目前为止我正在尝试:
init(json: JSON) {
id = json["id"].string
type = json["type"].string
text = json["text"].string
answer = json["answer"].string
format = json["format"].string
answeredBy = []
if let answeredByjson = json["answeredBy"].array {
for (_, userDict) in answeredByjson {
if let userDict = userDict as? [String : Any] {
answeredBy.append(JSON(User(dictionary: userDict)))
}
}
}
}
数组中的元素是必须用于初始化另一个对象(用户)的字典。 我得到的错误是:
表达式类型'[JSON]'在没有更多上下文的情况下是不明确的。
如何更新我的代码?
这是我的json:
{
"answer" : "rachel",
"answeredBy" : {
"j1K4WXbOFRXfm3srk9oMtZJ8Iop2" : {
"email" : "an email",
"pictureURL" : "a URL",
"uid" : "j1K4WXbOFRXfm3srk9oMtZJ8Iop2",
"name" : "a name"
},
"vtYlmyerugedizHyOW6TV847Be23" : {
"email" : "an email",
"pictureURL" : "a URL",
"uid" : "vtYlmyerugedizHyOW6TV847Be23",
"name" : "Rusty Shakleford"
}
},
"format" : "field",
"id" : "1",
"type" : "text",
"text" : "In a foot race, Jerry was neither first nor last. Janet beat Jerry, Jerry beat Pat. Charlie was neither first nor last. Charlie beat Rachel. Pat beat Charlie. Who came in last?"
}
答案 0 :(得分:0)
if let answeredByjson = json["answeredBy"].array {
...
}
生成一个数组[JSON]
,但您希望它生成一个字典[String: JSON]
。这就是你收到的原因:
表情类型' [JSON]'在没有更多背景的情况下是模棱两可的
制作字典:
if let answeredByjson = json["answeredBy"].dictionary {
...
}
你不希望它产生字典[String: JSON]
然后这条线没有意义
for (_, userDict) in answeredByjson {