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

キー

Swift 4 のEncoder&Decoderプロトコルを使用し、特定の JSON のキーを使用してJSONDecoderタイプの構造体を初期化する方法Codeable

つまり、以下の JSON を考えると、results初期化にのみ使用たいExample

{
  "boolean": true,
  "number": 123,
  "results": {
    "a": "b",
    "c": "d",
    "e": "f"
  },
  "string": "Hello World"
}
struct Example: MDB, Codeable{
    var a: String
    var b: String
    var c: String
}
public static func initalize<T: Codable & MDBItem>(json: Data) -> [T]{
        var items = [T]()
        let decoder = JSONDecoder()
        do {
         //How do I initialize `T` using a key from the JSON given
          //ie. decoder.decode([T].self, from: json["results"])
          // Or decoder.decode(["results", [T].self, from: json)
            items = try decoder.decode([T].self, from: json)
                    } catch {
            print("error trying to convert data to JSON")
        }
        return items
    }
ルカ・アンジェレッティ

考えられる簡単な方法は、ラッパー構造体を作成することです。

それで、あなたはこのJSONを持っています

let json = """
    {
    "boolean": true,
    "number": 123,
    "results": {
        "a": "b",
        "c": "d",
        "e": "f"
    },
    "string": "Hello World"
    }
    """

あなたは"results"この構造体を定義したセクションにのみ興味があるので

struct Example: Codable {
    let a: String
    let c: String
    let e: String
}

ラッパー

Codableプロトコル (Swift 4 で利用可能)の力を活用するために、次のようなラッパー構造を作成できます。

struct Wrapper: Codable {
    let results: Example
}

Wrapper 構造体の唯一の目的は、元の JSON のルートから関心のあるセクションへのパスを定義することです。これは、Codableプロトコルが残りのジョブを実行するためでした。

デコード

これで、Wrapper 構造体を使用して JSON を簡単にデコードできます。

if
    let data = json.data(using: .utf8),
    let wrapper = try? JSONDecoder().decode(Wrapper.self, from: data) {

    let results = wrapper.results
    print(results)
}

最後にresults、ラッパーからプロパティを抽出できます。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

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

分類Dev

名前のないJSON配列swift4を構造体でデコードする

分類Dev

Swift4でキーなしのJSONをデコードする

分類Dev

Swift4でキーなしのJSONをデコードする

分類Dev

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

分類Dev

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

分類Dev

動的JSONデコードSwift4

分類Dev

Swift4 / JSON /デコード

分類Dev

Codableを使用したSwift4デコードjson

分類Dev

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

分類Dev

日付を使用したswift4でのJSONデータのデコード

分類Dev

Swift4を使用したJSON解析

分類Dev

SWIFT4ネストされたJSON構造体-コード化可能

分類Dev

ネストされたキーなし配列のYoutubeAnalyticsでSwift4を使用してJSONをデコードする

分類Dev

Swift4でのJSONの解析

分類Dev

swift4でjsonデータを手動でデコードする方法

分類Dev

Swift4で小文字と大文字のJSONキーをデコードします

分類Dev

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

分類Dev

swift4を使用したiso8601日付jsonデコード

分類Dev

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

分類Dev

Swift4のエンコード可能/デコード可能を使用して構造体をエンコード/デコードします

分類Dev

Swift4を使用したHTMLデータからJSON、文字列

分類Dev

Swift4を使用したHTMLデータからJSON、文字列

分類Dev

swift4でuserdefaultsにjsonデータを保存する方法

分類Dev

Swift4とXcode9でJSONデータを取得する

分類Dev

Swift4のデコード可能なjson配列

分類Dev

JSONからのSwift4デコードダブル

分類Dev

Swift4コード化可能なデコードjson

分類Dev

Swift構造体を使用してネストされたJSONオブジェクトを適切にデコードする方法

Related 関連記事

  1. 1

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

  2. 2

    名前のないJSON配列swift4を構造体でデコードする

  3. 3

    Swift4でキーなしのJSONをデコードする

  4. 4

    Swift4でキーなしのJSONをデコードする

  5. 5

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

  6. 6

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

  7. 7

    動的JSONデコードSwift4

  8. 8

    Swift4 / JSON /デコード

  9. 9

    Codableを使用したSwift4デコードjson

  10. 10

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

  11. 11

    日付を使用したswift4でのJSONデータのデコード

  12. 12

    Swift4を使用したJSON解析

  13. 13

    SWIFT4ネストされたJSON構造体-コード化可能

  14. 14

    ネストされたキーなし配列のYoutubeAnalyticsでSwift4を使用してJSONをデコードする

  15. 15

    Swift4でのJSONの解析

  16. 16

    swift4でjsonデータを手動でデコードする方法

  17. 17

    Swift4で小文字と大文字のJSONキーをデコードします

  18. 18

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

  19. 19

    swift4を使用したiso8601日付jsonデコード

  20. 20

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

  21. 21

    Swift4のエンコード可能/デコード可能を使用して構造体をエンコード/デコードします

  22. 22

    Swift4を使用したHTMLデータからJSON、文字列

  23. 23

    Swift4を使用したHTMLデータからJSON、文字列

  24. 24

    swift4でuserdefaultsにjsonデータを保存する方法

  25. 25

    Swift4とXcode9でJSONデータを取得する

  26. 26

    Swift4のデコード可能なjson配列

  27. 27

    JSONからのSwift4デコードダブル

  28. 28

    Swift4コード化可能なデコードjson

  29. 29

    Swift構造体を使用してネストされたJSONオブジェクトを適切にデコードする方法

ホットタグ

アーカイブ