使用swift将Parse.com json数组转换为Array

时间:2014-11-11 00:02:18

标签: arrays json swift parse-platform

有人可以帮我解决这个问题。我将我的数据保存到Parse.com中,并将其保存到类型为array的列中(例如:[“11:30”,“12:45”,“13:02”],只是某些列表的字符串)。我试图得到这个数据用swift:

var take: NSMutableArray!

var query = PFQuery(className: "test")
query.getObjectInBackgroundWithId("QZ6Y8Oljc5"){
   (testData: PFObject!, error: NSError!) -> Void in
      if (error == nil){
         take = testData["workday"]
         println(take)    
       }
       else{
         println(error)
        }
}

问题是我只得到json数组类型:

(
   "11:30",
   "12:45,
   "13:02"
)

如何将其转换为NSArray,以便它可以像:

var myArray =  ["11:30","12:45,"13:02"]

感谢您提出任何建议,因为我尝试了我在此处找到的所有方法,但没有任何结果。

1 个答案:

答案 0 :(得分:1)

JSON数据的问题在于它是自己的数组,必须进行筛选和整理。通常人们会最终使用巨大的嵌套IF语句,最终看起来很混乱。幸运的是,有人创建了一个代码来筛选JSON数据,并通过使用大量的切换表为您提供可用的类型(Int,Arrays,Strings)。

https://github.com/SwiftyJSON/SwiftyJSON

查一下,它应该有所帮助。实现后,您可以通过输入..

来调用它
let json = JSON(Data : JSONData)

然后筛选,你使用子串..(取决于数据,你将它与字符串或int匹配)

let firstIndex = json["workday"]

//Int
let firstIndexOfWorkDay = json["workday"][0]

//String
let firstIndexOfWorkDay = json["workday"]["time"]

依此类推......但是,一旦你挑选出数据,你就需要施展它

let firstIndexOfWorkDay = json["workday"][0].valueOfFloat

//printing it would give 11:30

虽然我亲自使用“.description”..因为有时当我筛选所有数组时,它是各种类型的混合。

let firstIndexOfWorkDay = json["workday"][0].description

println(firstIndexOfWorkDay)

//would literally give "11:30" including the quotation marks

然后我使用字符串方法修剪引号然后将其转换为我需要的任何类型。但是一旦你弄清楚它的运作方式,这取决于你的创造力