1
JSONの解析に問題があります。私はWiki APIから戻ってきています。AlamoFire 4.0 + SwiftyJSON深くネストされたJSONのアンラップ
Podfile:
platform :ios, ’10.0’
inhibit_all_warnings!
use_frameworks!
target 'GemFinder' do
pod 'Alamofire', '~> 4.0’
pod 'SwiftyJSON', :git => 'https://github.com/appsailor/SwiftyJSON.git', :branch => 'swift3'
end
スウィフトコード:
import UIKit
import Alamofire
import SwiftyJSON
class WikiAPI: NSObject {
func MineralRequest(minID: (String)) {
Alamofire.request("https://en.wikipedia.org/w/api.php?action=query&titles=\(minID)&exintro=1&prop=pageimages%7Cextracts&format=json&pithumbsize=300", parameters: ["query": "pages"]).responseJSON { response in
if let values = response.result.value as? [String: AnyObject] {
let json = JSON(values)
// Returns null
print("otherJSON: \(json["query"]["pages"][0]["extract"])")
let JSONvalues = values as NSDictionary
print("JSONvalues: \(JSONvalues)")
// This is also working to retrieve everything from below "query"
let parse = JSONvalues.object(forKey: "query")
print("Parse: \(parse)")
let queryValues = values["query"]
// Returns nested "pages" object, but I need to go deeper.
print("queryvalues: \(queryValues?["pages"])")
}
}
}
}
私はもちろんの応答を取得することができるよ、としようもっと深く、私は、unwrapしようとするとnull値を取得し続けます。
私には何が欠けていますか?ここに木のイメージがあります。私はタイトル、画像、および抽出物を引き出しようとしています。ここに見られるように、このフォーマット後
は、まだnull値が得られます。パラメータは、どちらかの利益のためにいないようでした:How do I access a nested JSON value using Alamofire and SwiftyJSON?
ありがとう!これは正解でした。 – softdownfeathers
最初の部分は機能しますが、さらに調査した結果、pages.valuesがエラーをスローしていることがわかりました。 JSONにメンバー "値"がないことを示します。 JSONを別のものに変換せずにこれを行う別の方法がありますか? – softdownfeathers
@softdownfeathersあなたは歓迎です:) SwiftyJSONの正しいループ構文で答えを更新しました。 –