从数组内的元素中删除字符串文字

时间:2020-03-06 10:21:07

标签: swift

拜托,我需要快速解析一个字符串

"[{"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}]

2 个答案:

答案 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结构)。

您现在可以使用该数组并将其转换为您的需求。