前提・実現したいこと
APIを受信して画面に結果を表示させたいです。
JSONでデータは取れているのですが、そこからどう一つ一つ出していけばいいかわからず
教えてください。
使うAPIはこちらです。
https://api.gnavi.co.jp/api/manual/restsearch/
発生している問題・エラーメッセージ
import UIKit class ViewController: UIViewController { //エリア保持の変数 var area: String! // 取得したJSONを格納する変数 var getJson: NSDictionary! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } //タップ時のアクション @IBAction func onSearchTapped(_ sender: Any) { //URL設定 let url = URL(string: "https://api.gnavi.co.jp/RestSearchAPI/v3/?keyid=0xxxx")! let task = URLSession.shared.dataTask(with: url) { data, response, error in // ここのエラーはクライアントサイドのエラー(ホストに接続できないなど) if let error = error { print("クライアントエラー: (error.localizedDescription) \n") return } guard let data = data, let response = response as? HTTPURLResponse else { print("no data or no response") return } if response.statusCode == 200 { print(data) do { //dataをパースしてJSONを取得する self.getJson = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) as? NSDictionary for roop in self.getJson { //ここでデータを取り出したい } //遷移 DispatchQueue.main.async{ self.nextPage() } }catch{ print ("json error") return } } else { // レスポンスのステータスコードが200でない場合などはサーバサイドエラー print("サーバエラー ステータスコード: (response.statusCode)\n") } } task.resume() } //遷移 func nextPage() { let nextVC = storyboard?.instantiateViewController(withIdentifier: "TableTableViewController")as! TableTableViewController nextVC.getJson = self.getJson show(nextVC, sender: true) } }
このままではコードが見づらいので、質問を編集し、<code>ボタンを押し、出てくる'''の枠の中に貼り付けてください。
また、質問のタイトルが間違ってると思いますが、こちらも修正願います
アクセスキーが質問欄に記載されていますが、セキュリティ的に大丈夫ですか?
失礼しました。修正しました。
とりあえず
print(self.getJson)
としてみて、コンソールに期待した結果が出力されるかどうかは確認したでしょうか?
print(self.getJson) では取得できています
それで出た内容を貼ってもらうことはできますか?
ありがとうございます。
decodeができていない状態です。
添付いたします。
```swift
{
"@attributes" = {
"api_version" = v3;
};
"hit_per_page" = 10;
"page_offset" = 1;
rest = (
{
"@attributes" = {
order = 0;
};
access = {
line = "\Uff2a\Uff32";
note = "";
station = "\U6e0b\U8c37\U99c5";
"station_exit" = "";
walk = 1;
};
address = "\U3012150-0043 \U6771\U4eac\U90fd\U6e0b\U8c37\U533a\U9053\U7384\U57421-5-9 \U30b6\Uff65\U30ec\U30f3\U30ac\U30d3\U30eb5F";
budget = 3000;
category = "\U5168\U5e2d\U500b\U5ba4\U306e\U9244\U677f\U713c\U5c45\U9152\U5c4b";
code = {
areacode = AREA110;
"areacode_s" = AREAS2126;
areaname = "\U95a2\U6771";
"areaname_s" = "\U9053\U7384\U5742\U30fb\U795e\U6cc9";
"category_code_l" = (
RSFST09000,
""
);
"category_code_s" = (
RSFST09004,
""
);
"category_name_l" = (
"\U5c45\U9152\U5c4b",
""
);
"category_name_s" = (
"\U5c45\U9152\U5c4b",
""
);
prefcode = PREF13;
prefname = "\U6771\U4eac\U90fd";
};
"coupon_url" = {
mobile = "http://mobile.gnavi.co.jp/shop/e944802/coupon";
pc = "https://r.gnavi.co.jp/e944802/coupon/";
};
"credit_card" = "VISA,MasterCard,UC,DC,UFJ,\U30c0\U30a4\U30ca\U30fc\U30b9\U30af\U30e9\U30d6,\U30a2\U30e1\U30ea\U30ab\U30f3\U30fb\U30a8\U30ad\U30b9\U30d7\U30ec\U30b9,JCB,NICOS,\U30aa\U30ea\U30b3,\U30a2\U30d7\U30e9\U30b9,\U30bb\U30c7\U30a3\U30caCF,\U30e9\U30a4\U30d5,\U697d\U5929,\U30bb\U30be\U30f3,\U30a4\U30aa\U30f3,\U30a8\U30dd\U30b9,NC,JAL,MUFG,Discover Card";
"e_money" = "";
fax = "03-6416-4895";
flags = {
"mobile_coupon" = 1;
"mobile_site" = 1;
"pc_coupon" = 1;
};
holiday = "\U7121\n\U203b\U90fd\U5408\U306b\U3088\U308a\U5909\U66f4\U3059\U308b\U5834\U5408\U3082\U3054\U3056\U3044\U307e\U3059\U3002\U3054\U4e86\U627f\U304f\U3060\U3055\U3044\U3002";
id = e944802;
"image_url" = {
qrcode = "https://c-r.gnst.jp/tool/qr/?id=e944802&q=6";
"shop_image1" = "https://uds.gnst.jp/rest/img/61wpkk3h0000/t_0nk0.jpg";
"shop_image2" = "https://uds.gnst.jp/rest/img/61wpkk3h0000/t_0ngd.jpg";
};
latitude = "35.658176";
longitude = "139.699367";
lunch = "";
name = "\U5168\U5e2d\U500b\U5ba4\U3068\U9244\U677f\U713c\U5c45\U9152\U5c4b \U304b\U308f\U3089\U5c4b";
"name_kana" = "\U30bc\U30f3\U30bb\U30ad\U30b3\U30b7\U30c4\U30c8\U30c6\U30c3\U30d1\U30f3\U30e4\U30ad\U30a4\U30b6\U30ab\U30e4\U30ab\U30ef\U30e9\U30e4";
opentime = "\U91d1\U30fb\U795d\U524d\U65e5 15:00\Uff5e\U7fcc4:00(L.O.3:00\U3001\U30c9\U30ea\U30f3\U30afL.O.3:30)\n\U6708\Uff5e\U6728 15:00\Uff5e24:00(L.O.23:00\U3001\U30c9\U30ea\U30f3\U30afL.O.23:30)\n\U571f 13:00\Uff5e\U7fcc2:00(L.O.1:00\U3001\U30c9\U30ea\U30f3\U30afL.O.1:30)\n\U65e5\U30fb\U795d\U65e5 13:00\Uff5e24:00(L.O.23:00\U3001\U30c9\U30ea\U30f3\U30afL.O.23:30)";
"parking_lots" = "";
party = 4000;
pr = {
"pr_long" = "\U500b\U5ba4\U3067\U9244\U677f\U713c\U304d\U3084\U5275\U4f5c\U4e32\U306a\U3069\U540d\U7269\U6599\U7406\U3092\U304a\U697d\U3057\U307f\U304f\U3060\U3055\U3044\Uff01\n\U5973\U5b50\U4f1a\U3084\U61c7\U89aa\U4f1a\U3001\U8a95\U751f\U65e5\U30fb\U8a18\U5ff5\U65e5\U3001\U590f\U306e\U540c\U7a93\U4f1a\U306a\U3069\U69d8\U3005\U306a\U3054\U5bb4\U4f1a\U306b\U25ce\n\n\U25c62H\U98f2\U307f\U653e\U984c\U4ed8\U30b3\U30fc\U30b9\n\U30fb\U6708\U30b3\U30fc\U30b94,000\U5186/\U51687\U54c1 \U30fb\U98a8\U30b3\U30fc\U30b94\U3001500\U5186/\U51688\U54c1\n\U30fb\U82b1\U30b3\U30fc\U30b95\U3001000\U5186/\U51688\U54c1 \U30fb\U6975\U30b3\U30fc\U30b96,000\U5186/\U51689\U54c1\n\U203b10\U540d\U69d8\U4ee5\U4e0a\U3067\U5e79\U4e8b1\U540d\U7121\U6599\U306a\U3069\U304a\U5f97\U306a\U30af\U30fc\U30dd\U30f3\U6709\n\U25c7\U304b\U308f\U3089\U5c4b\U306e\U9038\U54c1\n\U30fb\U307b\U3046\U308c\U3093\U8349\U30bd\U30c6\U30fc\U21d2\U5f53\U5e97\U306e\U540d\U7269\Uff01\U4e00\U5ea6\U98df\U3079\U305f\U3089\U3084\U307f\U3064\U304d\U306b\U306a\U308b\U98df\U611f\U3068\U5473\U308f\U3044\U266a\n\U30fb\U91ce\U83dc\U5dfb\U304d\U4e32\U21d2\U5973\U6027\U306b\U304a\U3059\U3059\U3081\Uff01\U65ec\U91ce\U83dc\U3092\U8c5a\U8089\U3067\U5dfb\U3044\U305f\U30d8\U30eb\U30b7\U30fc\U306a\U9038\U54c1\n\U30fb\U30a2\U30f3\U30ac\U30b9\U725b\U30b9\U30c6\U30fc\U30ad\U21d2\U98df\U3079\U3054\U305f\U3048\U629c\U7fa4\Uff013\U7a2e\U306e\U304a\U5869\U3067\U3054\U582a\U80fd\U3042\U308c\n\U25c6\U4eba\U6c17\U306e\U65e5\U672c\U30ef\U30a4\U30f3\n\U6599\U7406\U3068\U306e\U76f8\U6027\U25ce\U7a4f\U3084\U304b\U306a\U30a2\U30ed\U30de\U3067\U98f2\U307f\U3084\U3059\U304f\U3001\U521d\U5fc3\U8005\U3082\U304a\U6c17\U8efd\U306b\U304a\U697d\U3057\U307f\U3044\U305f\U3060\U3051\U307e\U3059\n\U25c7\U5168\U5e2d\U5b8c\U5168\U500b\U5ba4\n\U548c\U60c5\U7dd2\U306b\U5bcc\U3093\U3060\U843d\U3061\U7740\U3044\U305f\U500b\U5ba4\U3092\U5b8c\U5099\Uff01\U63a5\U5f85\U306b\U3082\U304a\U3059\U3059\U3081\n2\U540d\Uff5e80\U540d\U69d8\U307e\U3067OK/30\U540d\U69d8\U7528\U500b\U5ba4\U3082\U3054\U3056\U3044\U307e\U3059";
"pr_short" = "[\U30cd\U30c3\U30c8\U3067\U5373\U4e88\U7d04OK] \U6e0b\U8c37\U99c51\U5206\U306e\U5168\U5e2d\U500b\U5ba4\U306e\U9244\U677f\U713c\U304d\U5c45\U9152\U5c4b \U5275\U4f5c\U4e32\U3084\U30b9\U30c6\U30fc\U30ad\U3068\U591a\U5f69\U306a\U65e5\U672c\U30ef\U30a4\U30f3\U3092\U304a\U697d\U3057\U307f\U3044\U305f\U3060\U3051\U307e\U3059\U266a \U898b\U305f\U76ee\U3082\U697d\U3057\U3081\U308b\U590f\U9650\U5b9a\U30c9\U30ea\U30f3\U30af\U3082\U3054\U7528\U610f\Uff01";
};
tel = "050-3462-6294";
"tel_sub" = "03-6416-4894";
"update_date" = "2019-07-20T00:37:53+09:00";
url = "https://r.gnavi.co.jp/e944802/?ak=wj1dTsch3WCTOxwy9y7EbULX7fiiyflYD7eTRAl8P%2Bk%3D";
"url_mobile" = "http://mobile.gnavi.co.jp/shop/e944802/?ak=wj1dTsch3WCTOxwy9y7EbULX7fiiyflYD7eTRAl8P%2Bk%3D";
}
);
"total_hit_count" = 1;
}
```
回答1件
あなたの回答
tips
プレビュー