2017-02-16 66 views
0

我在使用Freddy SDK解析JSON文件时正努力以正确的格式获取一些值,我试图用JSON解析一些问题和答案,例如:使用Freddy SDK解析JSON文件

{ 
     "success":true, 
     "quiz":[ 
       { 
       "question":"Which of the following is required by law?", 
       "answers":[ 
         ["To have your dog microchipped and correct details.", true], 
         ["To have your dog wear a collar and tag with correct contact details.", true], 
         ["To register your dog with the local Dog Warden.", false], 
         ["To pick up after your dog.", true] 
         ], 
       "imageFileName":"ChippedDog.jpg" 
       } 
      ] 
    } 

我遇到的麻烦是获得答案和他们的布尔值。我的解析代码是:

func createQuestionObjectsFromJSON() -> [Question] { 

    self.questions = [] 
    let filePath = Bundle.main.path(forResource: self.fileName, ofType: self.fileType) 
    if let data = NSData(contentsOfFile:filePath!) { 
     do { 
      let json = try JSON(data: data as Data) 
      for questionJSON in try json.getArray(at:"quiz") { 

       var question = Question() 
       question.text = try questionJSON.getString(at: "question") 
       question.answers = try questionJSON.getArray(at: "answers") as [AnyObject] 
       question.imageFileName = try questionJSON.getString(at: "imageFileName") 
       self.questions?.append(question) 
      } 
     } catch { 
      print("Error parsing questions part of JSON file") 
     } 
    } 

    return questions 

} 

但后来当我尝试访问我的cellForRow在每个答案我不能。

如果呼叫

let answer = currentQuestion.answers[indexPath.row]

然后打印我得到

[To have your dog microchipped and correct details., true]

,但第一个值是不是因为它应该是一个字符串,如果我叫

answer[0]

我得到零。我有点迷路,确定有一个简单的解决方法,但我只是看不到它。

任何帮助将是伟大的。

更新:Qustion结构:

进口的UIKit

struct Question { 

    var text: String! 
    var answers: [AnyObject]! 
    var imageFileName: String! 
} 

回答

0

尝试question.answers = try questionJSON.getArray(at: "answers") as [Array]


而不是 question.answers = try questionJSON.getArray(at: "answers") as [AnyObject]

+0

如果我这样做,然后调用'回答[0 ]'我得到错误'类型“任何”没有下标t成员' – Wazza

+0

你需要修改你的结构相应的问题 –

+0

我改变了结构问题到'var answers:Array !'那是什么给了我上面的错误 – Wazza