質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

3320閲覧

[Swift]jsonの値のとりだし方

fibonacchi

総合スコア8

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2017/03/02 16:20

編集2017/03/02 23:18

###前提・実現したいこと
swiftでQiitaのAPIクライアントアプリを作っています。
勉強を初めて数週間の者です。
(参考:QiitaAPIドキュメント

APIまわりの処理がイマイチわかっていません。

json

1[ 2 { 3 "body": "aaa", 4 "id": "bbb", 5 "private": false, 6 "rendered_body": "ccc", 7 "coediting": false, 8 "created_at": "2017-03-03T00:28:43+09:00", 9 "tags": [ 10 { 11 "name": "Swift", 12 "versions": [] 13 } 14 ], 15 "url": "http://example.com/", 16 "title": "sample code", 17 "group": null, 18 "updated_at": "2017-03-03T00:28:43+09:00", 19 "user": { 20 "description": "こんにちは。", 21 "followers_count": 1, 22 "id": "xxxxxxx", 23 "facebook_id": "", 24 "permanent_id": 1234, 25 "github_login_name": "xxxxxx", 26 "twitter_screen_name": null, 27 "followees_count": 1, 28 "website_url": "", 29 "linkedin_id": "", 30 "profile_image_url": "https://images/1234567", 31 "location": "", 32 "items_count": 2, 33 "name": "", 34 "organization": "" 35 } 36 }, 37 { 38 // 以下略 39 } 40]

このようなjsonがあったときに、

swift

1var items: [[String: String?]] = [] 2 json.forEach { (_, json) in 3 let item: [String: String?] = [ 4 "url": json["url"].string, 5 "title": json["title"].string, 6 "userId": json["user"]["id"].string, 7 "tagsName": json["tags"]["name"].string 8 ] 9 items.append(item) 10 } 11

このように"url"、"title"、"userId"はとることができたのですが、
"tags"の中のものがとれません。

あたまがこんがらがってきました。
優しく教えて頂けたらと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2017/03/02 22:58

どういうコードで取れないのか書いて下さい。
fuzzball

2017/03/02 23:39

jsonの型は何にしていますか?
fibonacchi

2017/03/02 23:58

swiftyjsonを使ってjson型にしています!
fuzzball

2017/03/03 00:07

終わりましたねw
guest

回答1

0

ベストアンサー

tagsの下の階層がArrayになっているので以下の様にすると取得できます。

swift

1let item: [String: String?] = [ 2 "url": json["url"].string, 3 "title": json["title"].string, 4 "userId": json["user"]["id"].string, 5 "tags": json["tags"][0]["name"].string, // "Swift" 6]

投稿2017/03/02 22:58

編集2017/03/02 23:00
_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fibonacchi

2017/03/02 23:57

迅速な解答ありがとうございます! tagsの中を取ることができました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問