[英]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.