Json 如何从字典数组中按键选取数据?
我尝试按键从数组字典中选取数据。Json 如何从字典数组中按键选取数据?,json,swift,dictionary,Json,Swift,Dictionary,我尝试按键从数组字典中选取数据。我可以按索引号来做。但这是我的字典[[String:AnyObject]]当我从json反序列化到字典时,键是什么存储每个元素。因为字典设置了键值对,字典中的每个值都与一个唯一键相关联 这是我的Json: { "photos": { "page": 1, "pages": 1, "perpage": 500, "total": 36, "photo": [ { "id": "967120
我可以按索引号来做。
但这是我的字典
[[String:AnyObject]]
当我从json反序列化到字典时,键是什么存储每个元素。因为字典设置了键值对,字典中的每个值都与一个唯一键相关联 这是我的Json:
{
"photos": {
"page": 1,
"pages": 1,
"perpage": 500,
"total": 36,
"photo": [
{
"id": "9671201784",
"owner": "34507951@N07",
"secret": "fb55a848bc",
"server": "5494",
"farm": 6,
"title": "Burning Man 2013",
"ispublic": 1,
"isfriend": 0,
"isfamily": 0,
"url_m": "https://farm6.staticflickr.com/5494/9671201784_fb55a848bc.jpg",
"height_m": "333",
"width_m": "500",
"is_primary": 1,
"has_comment": 0
},
{
"id": "16553346708",
"owner": "116399434@N04",
"secret": "092f304f0e",
"server": "7630",
"farm": 8,
"title": "Burning Man",
"ispublic": 1,
"isfriend": 0,
"isfamily": 0,
"url_m": "https://farm8.staticflickr.com/7630/16553346708_092f304f0e.jpg",
"height_m": "244",
"width_m": "500",
"is_primary": 0,
"has_comment": 0
}],
"stat": "ok"
}
反序列化swift代码
if let photos = parsedResult[Constants.FlickerResponseKeys.Photos] as?[String : AnyObject ]{
// print(photos[Constants.FlickerResponseKeys.Photo])
if let photo = photos[Constants.FlickerResponseKeys.Photo] as? [[String : AnyObject]] {
print(photo[0])
}
}
把这张照片放在里面
for (key, value) in photo {
print(key)
print(value)
}
您可以轻松地使用映射JSON。创建一个新的swift文件并放入以下代码
import UIKit
import ObjectMapper
class Photos: Mappable {
var page : Int
var pages : Int
var perpage : Int
var total : Int
var photo : [MyPhoto]
required init?(_ map: Map) {
page = 0
pages = 0
perpage = 0
total = 0
photo = []
}
func mapping(map: Map) {
page <- map["photos.page"]
pages <- map["photos.pages"]
perpage <- map["photos.perpage"]
total <- map["photos.total"]
photo <- map["photos.photo"]
}
}
class MyPhoto: Mappable {
var id : String
var owner : String
var secret : String
.
.
.
required init?(_ map: Map) {
id = ""
owner = ""
secret = ""
}
func mapping(map: Map) {
id <- map["id"]
owner <- map["owner"]
secret <- map["secret"]
}
}
导入UIKit
导入对象映射器
班级照片:可映射{
变量页:Int
变量页:Int
每页变量:Int
变量总计:Int
var photo:[MyPhoto]
必需的初始化(umap:map){
第页=0
页数=0
每页=0
总数=0
照片=[]
}
func映射(映射:映射){
页面谢谢。但我在swift中是新手。我不了解你的代码。如果你是新手,没问题。请转到ObjectMapper的链接,使用cocoaPods安装它,然后按照我的答案进行操作。如果你遇到了问题,请告诉我。我不建议手动映射JSON。因为如果在任何时候发生键更改或如果从json中删除,您的应用程序可能会崩溃。bro我了解照片,但..如何管理[[String:AnyObject]].AnyObject表示每个对象,但键是什么?…我想找到每个对象的每个字符串键检查我的编辑这应该给你String
和Value
不工作..应该抛出“表达式类型”[[String:AnyObject]]”不明确,没有更多上下文”错误
if let data = Mapper<Photos>().map(result){
print(data.perpage)
print(data.photo.count)
// do something with your data
}