SwiftのリモートJSON解析は私にとって新しく、数週間かけてこれを理解しようとしました。SwiftのJSON深くネストされたオブジェクトへのアクセス
Iから引っ張ってるJSONはこの男である: http://www.odysseynewsmagazine.net/wp-json/wp/v2/posts?_embed
私は各記事の画像のためにその「SOURCE_URL」を取得しようとしているが、それは内にネストされた「media_details」 "内にネストされていますwp:featuredmedia "は" _embedded "内でネストされています。
私が書いたコードは次のようになります。
func parseData() {
fetchedSlug = []
//from odyssey site
let url = "http://www.odysseynewsmagazine.net/wp-json/wp/v2/posts?_embed"
var request = URLRequest(url: URL(string: url)!)
request.httpMethod = "GET"
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration, delegate: nil, delegateQueue: OperationQueue.main)
let task = session.dataTask(with: request) { (data, response, error) in
if error != nil {
print("Error")
}
else {
do {
let fetchedData = try JSONSerialization.jsonObject(with: data!, options: .mutableLeaves) as! NSArray
//Json objects to variables
for eachFetchedSlug in fetchedData {
let eachSlug = eachFetchedSlug as! [String: Any]
let slug = eachSlug["slug"] as! String
let link = eachSlug["link"] as! String
self.fetchedSlug.append(Slug(slug: slug, link: link))
}
self.slugTableView.reloadData()
}
catch {
print("Error2")
}
}
}
task.resume()
}
}//end of VC Class
class Slug {
//define variables
let slug: String?
let link: String?
init(slug: String?, link: String?) {
self.slug = slug
self.link = link
}
//creating dictionaries from Json objects
init(slugDictionary: [String : Any]) {
self.slug = slugDictionary["slug"] as? String
link = slugDictionary["link"] as? String
}
}
は私も「タイトル」内「レンダリング」で発見された各記事のタイトルを必要とするつもりです。
この情報はすべて、tableView内の再利用可能なカスタムセル内にラベルを挿入しています。私はスラッグとリンクのラベルに値を入れることができますが、ネストされた情報は入れません。
「埋め込み」の前にあるアンダースコアは何ですか?それで私は何にもできないのですか?私はそれを遠ざけることができますか?プラグインをダウンロードしたり、カスタムスクリプトを実行することは許可されていません。
プラグインを回避する方法はありますか?彼らはWordPressのサイトをまったく混乱させる前に、機能的にしたいと考えていたことについてかなり堅かったです。他に方法がないという証拠が必要です。 –