問題タブ [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 があります。datadata
悪い反応:
正常な応答:
これらの応答を検証したい:
エラーで応答オブジェクトをデコードしようとすると、常に失敗します:オブジェクトを Swift type としてExpected to decode Data but found a dictionary instead.デコードできると思っていましたが、実際には辞書です。dataData[String: Any]
Data1) API から受け取った をどのように検証できますか?
data2) JSON 応答の " " 部分のみDataを型として抽出できる方法はありUserますか?statusdata
swift - Date およびその他の組み込み型の Codable 機能を拡張するにはどうすればよいですか?
Date.init(from:Decoder)サーバーから渡されたさまざまな形式を処理するために、の機能を拡張しようとしています。日付が文字列としてエンコードされる場合もあれば、その文字列が辞書にネストされる場合もあります。Swift のソースによると、次のDateようにデコード/エンコードされます。
そこで、次のようにその機能を拡張しようとしました。
ただし、この関数は呼び出されません。次に、次のようにデコードKeyedDecodingContainerを変更するために拡張しようとしました。Datedecode(_:forKey)
ただし、 をDate呼び出してエンコードした a をデコードするためにこれを呼び出すと、データが ではないというエラーが表示container.encode(date, forKey: .date)されます。関数 forは Double を明示的にエンコードするため、何が起こっているのか完全に困惑しています。Swift ソース コードの呼び出しをたどってみましたが、呼び出しがないようです。typeMismatchDoubleencode(to:)DatedecodeDate.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 にデコードするにはどうすればよいですか?