gpt4 book ai didi

swift - 从 Meteor JSON/Array/Cursor 创建字典数组

转载 作者:行者123 更新时间:2023-11-28 06:56:21 24 4
gpt4 key购买 nike

我从数组中的 Meteor 服务器接收了几个(0-10)个对象。它们在控制台中可能看起来像这样:

let allConferences = conferences.allDocuments
print(allConferences)

控制台输出:

[<METDocument key: <collection: conferences, ID: Hr3bw6pySG8G3TKzh>, fields: {
createdAt = "2015-11-03 13:43:05 +0000";
type = doctor;
user = KTsCySacEAiz3eDnf;
userdata = {
birthdate = "Male";
gender = "<null>";
};
}>, <METDocument key: <collection: conferences, ID: RmfQm96Kcj5JTfDQM>, fields: {
createdAt = "2015-11-03 13:40:12 +0000";
type = doctor;
user = KTsCySacEAiz3eDnf;
userdata = {
birthdate = "<null>";
gender = "<null>";
};
}>]

我需要以我可以在 Swift 2.1 中轻松使用的格式获取这些数据。例如,我需要根据 createdAt 字段对对象进行排序,然后在 tableView 的标签中使用其他一些字段。

我已经根据 this answer 尝试了 NSJSONSerialization

do {
if let jsonResult = try NSJSONSerialization.JSONObjectWithData(allConferences, options: []) as? NSDictionary {
print(jsonResult)
}
} catch {
print(error)
}

但这给了我错误 Cannot convert value of type '[AnyObject]' to expected argument type 'NSData'

我可以用这个方法直接访问字段区域:

let oneConferencesField: NSDictionary = conferences.allDocuments[0].valueForKey("fields") as! NSDictionary

如果有人知道如何按照使用 NSJSONSerialization 的经典方法解析此数据,那就太好了 - 谢谢。

最佳答案

NSJSONSerialization.JSONObjectWithData 仅适用于 JSON 数据(例如,来自服务器)。您的 allConferences 对象是 METDocument 对象的数组,而不是数据,因此它不起作用是正常的。

通读文档,您似乎可以通过使用其 fields 从 METDocument 中获取字典。属性(property)。

所以要从你的对象中提取字典,你可以这样做:

var dicts: [[String:AnyObject]] = []
for document in conferences.allDocuments {
if let fields = document.fields as? [String:AnyObject] {
dicts.append(fields)
}
}

关于swift - 从 Meteor JSON/Array/Cursor 创建字典数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33503422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com