簡體   English   中英

將 swift 數組轉換為 JSON 對象

[英]Convert swift arrays into JSON object

我有兩個數組:

let value = [41, 42, 45] ...
let date = [NSDate1, NSDate2, NSDate3] ...

我需要將數據作為 json 對象保存到我們服務器上的 mongodb 上。 我使用格式如下的示例對象進行了測試,它按預期工作。 如何在 swift/objective c 中有效地將我的數組重新格式化為這種格式?

let jsonObject = [
["date" : "2014/01/01", "value" : "41"],
["date" : "2014/01/02", "value" : "42"],
["date" : "2014/01/03", "value" : "45"]]

任何幫助將不勝感激! 謝謝 !

您可以壓縮數組,然后將它們映射到字典中。

您可以在 Playground 中運行此代碼作為示例。

let value = [41, 42, 45]
let date = [NSDate(), NSDate(), NSDate()]

let zippedArray = Array(zip(value, date))

let jsonObject = zippedArray.map({ (tuple: (value: Int, date: NSDate)) in
    return [
         "value"  :     String(tuple.value),
         "date"   :     String(_cocoaString: tuple.date) // You would probably want to use a method here that gives you the string in the format you want
    ]
})

你可以試試這個:

let value = [41, 42, 45]
let date = [NSDate(), NSDate(), NSDate()]

let jsonArray = NSMutableArray()

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "YYYY/MM/dd"

for i in 0..<value.count {

    var jsonObject = Dictionary<String, String>()

    let dateString = dateFormatter.stringFromDate(date[i])

    jsonObject["date"] = dateString
    jsonObject["value"] = value[i].description

    jsonArray.addObject(jsonObject)

}

println(jsonArray)

var error: NSError? = nil;
let jsonData: NSData = NSJSONSerialization.dataWithJSONObject(jsonArray, options: nil, error: &error)!

希望這有幫助。

我結合了兩者的方法,並且奏效了。 謝謝:-) 現在我可以去睡覺了.... 00:33am 非常感謝

func zipArrays()-> NSArray{
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "YYYY/MM/dd"
    let zippedArray = Array(zip(value, date))

    let jsonObject = zippedArray.map({ (tuple: (value: Int, date: NSDate)) in
        return [
            "date"   :     String(_cocoaString: dateFormatter.stringFromDate(tuple.date) ),
            "value"  :     String(tuple.value)
        ]
    })

    return jsonObject
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM