問題タブ [decodable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - Swift4 でこの JSON を検証する方法は?
エラーオブジェクトまたは期待値のいずれかが含まれているstatus
値と値を含む連想配列で応答をラップする API があります。data
data
悪い反応:
正常な応答:
これらの応答を検証したい:
エラーで応答オブジェクトをデコードしようとすると、常に失敗します:オブジェクトを Swift type としてExpected to decode Data but found a dictionary instead.
デコードできると思っていましたが、実際には辞書です。data
Data
[String: Any]
Data
1) API から受け取った をどのように検証できますか?
data
2) JSON 応答の " " 部分のみData
を型として抽出できる方法はありUser
ますか?status
data
swift - Date およびその他の組み込み型の Codable 機能を拡張するにはどうすればよいですか?
Date.init(from:Decoder)
サーバーから渡されたさまざまな形式を処理するために、の機能を拡張しようとしています。日付が文字列としてエンコードされる場合もあれば、その文字列が辞書にネストされる場合もあります。Swift のソースによると、次のDate
ようにデコード/エンコードされます。
そこで、次のようにその機能を拡張しようとしました。
ただし、この関数は呼び出されません。次に、次のようにデコードKeyedDecodingContainer
を変更するために拡張しようとしました。Date
decode(_:forKey)
ただし、 をDate
呼び出してエンコードした a をデコードするためにこれを呼び出すと、データが ではないというエラーが表示container.encode(date, forKey: .date)
されます。関数 forは Double を明示的にエンコードするため、何が起こっているのか完全に困惑しています。Swift ソース コードの呼び出しをたどってみましたが、呼び出しがないようです。typeMismatch
Double
encode(to:)
Date
decode
Date.init(from:Decoder)
だから私は疑問に思っています、Date
この種の拡張機能を介して型がデコードされる方法を変更することは可能ですか? Date
すべての単一モデルでカスタム デコードを複製する唯一のオプションはありますか? いったい何を呼ぶのinit(from:Decoder)
?
json - Swift 4 Decodable を使用して、プロパティ値が混在する JSON を解析する
Swift 4 Decodable を使用するようにアプリを更新しようとしています - そして、次のような子の値を持つ JSON API からデータを取得しています:
- 子オブジェクト
- 文字列
- Int
Json API の応答は次のとおりです。
以下を使用して解析しようとしました: どちらも文字列である id プロパティと key プロパティを参照するだけで機能します。
fields オブジェクトを Struct にデコードするにはどうすればよいですか?