使用swiftyjson从索引对象数组ios中检索json中的标题

时间:2016-12-07 05:26:57

标签: ios json swift afnetworking swifty-json

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
  }

如何访问"标题"和"缩略图":"来源"使用SwiftyJSON

从JSONresponse中检索后的JSON文件中

" 321"," 172"可以改变和依赖。在相同格式的数组中有多个对象。

有些对象也有缩略图对象。

如何使用图片和标签将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)")

先谢谢。

2 个答案:

答案 0 :(得分:1)

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

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

}

答案 1 :(得分:1)

尝试列举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)
         }
    }
}