【问题标题】:Convert Parse.com json array into Array with swift使用 swift 将 Parse.com json 数组转换为数组
【发布时间】:2014-11-11 00:02:18
【问题描述】:

有人可以帮我解决这个问题吗?我将我的数据保存到 Parse.com 到类型为数组的列中(例如:["11:30","12:45,"13:02"],只是一些时间作为字符串的列表)。我试图得到快速获取此数据:

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"]

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

【问题讨论】:

    标签: arrays json swift parse-platform


    【解决方案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
    

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

    【讨论】:

    • 谢谢!这对我帮助很大!我现在得到一个整数数组,如 [1,2,3],所以我需要弄清楚如何将它转换为字符串数组,如 ["1","2","3"] 就是这样.如果您有任何建议,我将不胜感激。
    • 没问题!只需使用“.description”,它就会将文字值打印为字符串。如果它包含一个布尔值,它将打印出“True”,如果它包含一个整数,它将打印出“1”等等。但当然,您总是可以筛选整数数组并将每个数组转换为字符串。
    • 看起来这不是 NSArray,它仍然是 JSON。我试过这个`let json = JSON(take)`然后var myArray = json.array!println(myArray)它打印[1,2,3]但JSON格式
    • 我用var myArray = json.arrayObject as Array<String>!修复了它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多