swift4を使用してJSONを解析する方法

ブレスアベル

果物の詳細を取得するのが混乱しています

{
  "fruits": [
    {
      "id": "1",
      "image": "https://cdn1.medicalnewstoday.com/content/images/headlines/271/271157/bananas.jpg",
      "name": "Banana"
    },
    {
      "id": "2",
      "image": "http://soappotions.com/wp-content/uploads/2017/10/orange.jpg",
      "title": "Orange"
    }
  ]
}

「デコード可能」を使用してJSONを解析したい

struct Fruits: Decodable {
    let Fruits: [fruit]
}
struct fruit: Decodable {
    let id: Int?
    let image: String?
    let name: String?
}

let url = URL(string: "https://www.JSONData.com/fruits")
        URLSession.shared.dataTask(with: url!) { (data, response, error) in

            guard let data = data else { return }

            do{
                let fruits = try JSONDecoder().decode(Fruits.self, from: data)
                print(Fruits)

            }catch {
                print("Parse Error")
            }

また、画像をすばやくダウンロードするためのcocoapodライブラリを提案してもらえますか

BlackMirrorz

あなたが直面している問題は、あなたJSONがあなたの果物のために異なるデータを返しているからです。

1番目のIDの場合は、String呼び出されたを返しますnameが、2番目のIDの場合は、と呼ばれる文字列を返しますtitle

さらに、JSONを解析すると、IDはStringではなくaであるように見えますInt

したがって、データから2つのオプションの値があります。

そのため、デコード可能な構造は次のようになります。

struct Response: Decodable {
    let fruits: [Fruits]

}

struct Fruits: Decodable {
    let id: String
    let image: String
    let name: String?
    let title: String?
}

あなたのURLは有効ではないようですので、メインバンドルにJSONファイルを作成し、次のように正しく解析することができました。

/// Parses The JSON
func parseJSON(){

    if let path = Bundle.main.path(forResource: "fruits", ofType: "json") {

        do {
            let data = try Data(contentsOf: URL(fileURLWithPath: path), options: .mappedIfSafe)
            let jsonResult = try JSONDecoder().decode(Response.self, from: data)

            let fruitsArray = jsonResult.fruits

            for fruit in fruitsArray{

                print("""
                    ID = \(fruit.id)
                    Image = \(fruit.image)
                    """)

                if let validName = fruit.name{
                     print("Name = \(validName)")
                }

                if let validTitle = fruit.title{
                    print("Title = \(validTitle)")
                }


            }

        } catch {
           print(error)
        }
    }
}

それが役に立てば幸い...

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Codableを使用してSwift4で複雑なJSONを解析する方法

分類Dev

変数をキーとしてjsonを解析するSwift4

分類Dev

Swift4を使用したJSON解析

分類Dev

Swift4でFetchedResultsControllerを使用してDateSectionTitlesを取得する方法

分類Dev

Alamofireを使用してSwift4でYoutubeAPIを解析します

分類Dev

swift4の少し複雑なjsonからデータを解析して取得する方法は?

分類Dev

動的キーを使用してSwift4でネストされたJSONからデータを抽出する方法

分類Dev

Alamofire、Swift4を使用してUICollectionViewのJSONデータをフェッチする方法

分類Dev

Alamofireとデコードを使用してJSONを取得する-Swift4

分類Dev

swift4でUIImagePickerControllerを使用する方法

分類Dev

iOS Swift4 DateFormatter()のみを使用して短い平日を印刷する方法は?

分類Dev

Swift4 / 5を使用して複数のクラスを拡張する方法

分類Dev

Alamofire Swift4を使用してUICollectionViewに画像を入力する方法

分類Dev

swift4を使用してgooglemap apiを呼び出す方法は?

分類Dev

配列内の配列をswift4でjsonを解析する方法

分類Dev

JSON.serializerを使用してSwiftでJSONを解析する方法

分類Dev

SWIFT3を使用してこのJSONを解析する方法

分類Dev

すべてのデバイスでswift4を使用してCollectionViewに2つの列を表示する方法

分類Dev

すべてのデバイスでswift4を使用してCollectionViewに3つの列を表示する方法

分類Dev

ランダムキーを使用してネストされたJSONをデコードするSwift4

分類Dev

Swift4を使用してiOSでマルチレベルJSONを構造体にデコードする

分類Dev

JSON swift4 のキーを使用して構造体をデコードする

分類Dev

配列にswift4を使用してリモートURLからjsonデータを取得する正しい方法

分類Dev

fontAwesomeを使用してカスタムアイコンをSwift4のUIbuttonに追加する方法

分類Dev

Swift4を使用してFirebaseServerValue.timestamp()を日付またはミリ秒に変換する方法

分類Dev

Swift4を使用して配列から特定のキー値を検証する方法

分類Dev

Swift4のアンカーを使用してプログラムでUIScrolllViewにビューを追加する方法

分類Dev

MVVM + Swift4を使用してサインアップ画面を実装する方法

分類Dev

Swift4をタップしてUIViewを閉じる方法

Related 関連記事

  1. 1

    Codableを使用してSwift4で複雑なJSONを解析する方法

  2. 2

    変数をキーとしてjsonを解析するSwift4

  3. 3

    Swift4を使用したJSON解析

  4. 4

    Swift4でFetchedResultsControllerを使用してDateSectionTitlesを取得する方法

  5. 5

    Alamofireを使用してSwift4でYoutubeAPIを解析します

  6. 6

    swift4の少し複雑なjsonからデータを解析して取得する方法は?

  7. 7

    動的キーを使用してSwift4でネストされたJSONからデータを抽出する方法

  8. 8

    Alamofire、Swift4を使用してUICollectionViewのJSONデータをフェッチする方法

  9. 9

    Alamofireとデコードを使用してJSONを取得する-Swift4

  10. 10

    swift4でUIImagePickerControllerを使用する方法

  11. 11

    iOS Swift4 DateFormatter()のみを使用して短い平日を印刷する方法は?

  12. 12

    Swift4 / 5を使用して複数のクラスを拡張する方法

  13. 13

    Alamofire Swift4を使用してUICollectionViewに画像を入力する方法

  14. 14

    swift4を使用してgooglemap apiを呼び出す方法は?

  15. 15

    配列内の配列をswift4でjsonを解析する方法

  16. 16

    JSON.serializerを使用してSwiftでJSONを解析する方法

  17. 17

    SWIFT3を使用してこのJSONを解析する方法

  18. 18

    すべてのデバイスでswift4を使用してCollectionViewに2つの列を表示する方法

  19. 19

    すべてのデバイスでswift4を使用してCollectionViewに3つの列を表示する方法

  20. 20

    ランダムキーを使用してネストされたJSONをデコードするSwift4

  21. 21

    Swift4を使用してiOSでマルチレベルJSONを構造体にデコードする

  22. 22

    JSON swift4 のキーを使用して構造体をデコードする

  23. 23

    配列にswift4を使用してリモートURLからjsonデータを取得する正しい方法

  24. 24

    fontAwesomeを使用してカスタムアイコンをSwift4のUIbuttonに追加する方法

  25. 25

    Swift4を使用してFirebaseServerValue.timestamp()を日付またはミリ秒に変換する方法

  26. 26

    Swift4を使用して配列から特定のキー値を検証する方法

  27. 27

    Swift4のアンカーを使用してプログラムでUIScrolllViewにビューを追加する方法

  28. 28

    MVVM + Swift4を使用してサインアップ画面を実装する方法

  29. 29

    Swift4をタップしてUIViewを閉じる方法

ホットタグ

アーカイブ