0

试图从此 JSON 中获取帖子的“标题”、“内容”、类别的“标题”和作者姓名。得到错误Type 'NSFastEnumerationIterator.Element' (aka 'Any') has no subscript members。在控制台中打印帖子工作正常,但在尝试获取帖子标题时出错。请帮忙。JSON & Switch 代码是

JSON

{  
   "status":"ok",
   "count":1,
   "count_total":44,
   "pages":44,
   "posts":[  
      {  
         "id":87,
         "url":"http://www.website.com/blogs/my first blog/",
         "title":"My First Blog",
         "content":"blog content",
         "date":"2015-04-06 22:42:12",
         "modified":"2015-12-26 00:45:09",
         "categories":[  
            {  
               "id":45,
               "title":"Trip",
               "description":"",
               "post_count":21
            }
         ],
         "author":{  
            "id":1,
            "name":"admin",
            "url":"",
            "description":"hello"
         }
      }
   ]
}

SWIFT代码

            if let blogContent = data {

                do {

                    let jsonResult = try JSONSerialization.jsonObject(with: blogContent, options: JSONSerialization.ReadingOptions.mutableContainers)

                    if let items = jsonResult as? [NSString:Any] {

                        //print(items)

                        let item = items["posts"] as! NSArray

                        for post in item {

                            print(post)

                            print(post["title"])

                        }

                    }
                } catch {

                    print("JSON processing failed.")
                }

            }
4

1 回答 1

1

得到它的工作。这是工作代码。希望它可以帮助有同样问题的人。谢谢 :)

if let blogContent = data {

                do {

                    let jsonResult = try JSONSerialization.jsonObject(with: blogContent, options: JSONSerialization.ReadingOptions.mutableContainers)

                    if let items = jsonResult as? [String: AnyObject] {

                        if let item = items["posts"] as? NSArray {

                            for posts in item {

                                if let post = posts as? [String: AnyObject] {

                                    print(post["title"]!)

                                    let categories = post["categories"] as! NSArray

                                    for category in categories {

                                        if let categ = category as? [String: AnyObject] {

                                            print(categ["title"]!)

                                        }
                                    }

                                    let author = post["author"] as! [String: AnyObject]

                                    print(author["name"]!)

                                }

                            }

                        }
于 2016-11-12T01:12:37.447 回答