拜托,我需要快速解析一个字符串
"[{"question":9, "answer":25}", "question\":10, "answer":27}]"
其中索引和值是从循环动态获取的。我能够找到这些
["{\"question\":9, \"answer\":25}", "{\"question\":10, \"answer\":27}", "{\"question\":11, \"answer\":29}", "{\"question\":12, \"answer\":33}", "{\"question\":13, \"answer\":37}"]
所以我已经尝试过了
for i in 0..<answersForQuestionInPage.count{ let questions = answersForQuestionInPage[i] as Answer do { let data = try JSONEncoder().encode(questions) // 2 let string = String(data: data, encoding: .utf8)! answers.append(string) print("This is the main value \(string)") } catch{ } }
这仍然给了我这种格式的数组
[“ {\”问题\“:9,\”答案\“:25}”,“ {\”问题\“:10, \“ answer \”:27}“,” {\“问题\”:11,\“ answer \”:29}“, “ {\”问题\“:12,\”答案\“:33}”,“ {\”问题\“:13, \“ answer \”:37}“]
与对象
“ {\”问题\“:9,\”答案\“:25}” 仍然用字符串liteal包装“”我想要的是此返回数组采用这种格式
[{“ question”:9,“ answer”:25},{“ question”:10, “ answer”:27},{“ question”:11,“ answer”:29}, “ {” question“:12,” answer“:33},{” question“:13, “ answer”:37}]
答案 0 :(得分:1)
我不了解全部内容,但是您说您需要解析String
,但是我认为您的意思是JSON
。因此,您可以像这样进行操作并获取值。请让我知道您是否需要它,否则,请在您的问题中添加清晰性,我将相应地编辑和更新我的答案。
struct Quiz: Decodable {
let question, answer: Int
}
private func fetchQuizzes() {
//After getting the data from API, you can do this
guard let quiz = try? JSONDecoder().decode([Quiz].self,from: data) else { print("Unable to parse"); return }
print(quiz)
print(quiz.first?.answer) //First Answer
}
答案 1 :(得分:0)
就像Rob之前说的那样,您在这里有一个JSON。 使用Robs代码,您可以解码给定的JSON并创建一个Quiz对象数组(Robs结构)。
您现在可以使用该数组并将其转换为您的需求。