使用 swiftyjson 从索引 object 数组 ios 中检索标题 json

Retrieval of title from json from indexed object array ios using swiftyjson

JSON

    {
  "321" : {
    "title" : "xyz",
    "pageid" : 321,
    "ns" : 0
  },
  "172" : {
    "pageimage" : "xyzc.jpg",
    "pageid" : 172,
    "title" : "xyzcc",
    "ns" : 0,
    "thumbnail" : {
      "width" : 100,
      "height" : 57,
      "source" : "https:\/\/upload.abcd.org\/wikipedia\/commons\/thumb\/d\/de\/xyz.jpg\/100px-xyz.jpg"
    }
  },
  "224" : {
    "pageimage" : "abc.jpg",
    "pageid" : 224,
    "title" : "dasf",
    "ns" : 0,
    "thumbnail" : {
      "width" : 98,
      "height" : 100,
      "source" : "http:\/\/example.org\/images\/thumb\/2\/26\/skfdb.jpg\/98px-586px-dasdfsa.jpg"
    }
  },
  "825" : {
    "title" : "efkjdsb",
    "pageid" : 825,
    "ns" : 0
  },
  "229" : {
    "title" : "eafewg",
    "pageid" : 229,
    "ns" : 0
  }

使用 [=15= 从 JSON 响应中检索后,如何访问 "title" 和 "thumbnail":JSON 文件中的 "source" ]?

“321”、“172”可以更改并视情况而定。相同格式的数组中有多个 object。

有些 object 有缩略图 object 有些没有。

如何将 titlethumbnail->source 提取到带有图像和标签的 TableView 以创建列表。

(使用Swift语言) 我正在使用 AFNetworking

检索 json
let manager = AFHTTPSessionManager()
        manager.GET(url, parameters: nil, success: {(operation, responseObject) -> Void in

            let responsejson = JSON(responseObject!)


            print("\n \n \n \n \n \n  Retrieved = \n\(responsejson)")

            let items = responsejson.count
            print("Items : \(items)")

提前致谢。

您可以使用这样的代码来获取每个值:

for (key,obj) in responsejson {
    print(obj["title"])
    print(obj["thumbnail"]["source"])

}

尝试通过您的 JSON 响应进行枚举,并检查 titlethumbnail 是否可用。

for (key,item) in responsejson  {
    if let title :String = item["title"].stringValue{
        print(title)
        if let thumbnail : String = item["thumbnail"]["source"].stringValue{
            print(thumbnail)
        }
    }
}

编辑:

你也可以使用Swift原生Dictionary

for (key,item) in responsejson.dictionaryValue {
    if let title = item["title"] as? String {
         print(title)
         if let thumbnailDic = item["thumbnail"] as? [String: AnyObject] {
            print(thumbnail)
         }
    }
}