繁体   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