[解決済み】swift 4でenumをDecodableにするにはどうすればいいですか?
2022-04-06 19:05:20
質問
enum PostType: Decodable {
init(from decoder: Decoder) throws {
// What do i put here?
}
case Image
enum CodingKeys: String, CodingKey {
case image
}
}
これを完成させるにはどうしたらいいのでしょうか?
また
case
をこうしてください。
case image(value: Int)
Decodableに準拠させるには?
エディット 以下は、私の完全なコードです(これは動作しません)。
let jsonData = """
{
"count": 4
}
""".data(using: .utf8)!
do {
let decoder = JSONDecoder()
let response = try decoder.decode(PostType.self, from: jsonData)
print(response)
} catch {
print(error)
}
}
}
enum PostType: Int, Codable {
case count = 4
}
最終編集 また、このようなenumはどのように処理されるのでしょうか?
enum PostType: Decodable {
case count(number: Int)
}
解決方法は?
とても簡単です。
String
または
Int
暗黙のうちに割り当てられる生の値。
enum PostType: Int, Codable {
case image, blob
}
image
がエンコードされて
0
と
blob
から
1
または
enum PostType: String, Codable {
case image, blob
}
image
がエンコードされて
"image"
と
blob
から
"blob"
簡単な使い方の例をご紹介します。
enum PostType : Int, Codable {
case count = 4
}
struct Post : Codable {
var type : PostType
}
let jsonString = "{\"type\": 4}"
let jsonData = Data(jsonString.utf8)
do {
let decoded = try JSONDecoder().decode(Post.self, from: jsonData)
print("decoded:", decoded.type)
} catch {
print(error)
}
関連
-
[解決済み] Java enumのメンバーを比較する:==またはequals()?
-
[解決済み] Error: this class is not key value coding-compliant for key tableView.' [重複] を修正する方法。
-
[解決済み] enumを列挙するには
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] C#でenumからint値を取得する
-
[解決済み] C#の[Flags]Enum属性の意味とは?
-
[解決済み] JavaScriptSerializer - 列挙型を文字列としてJSONシリアライズする
-
[解決済み] Pythonで'Enum'を表現するにはどうしたらいいですか?
-
[解決済み】TをEnumに拘束するGenericメソッドの作成
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] これを解決するにはどうしたらいいのでしょうか。UILabel.textは、メインスレッドからのみ使用する必要があります。
-
[解決済み] Swift言語におけるエクスクラメーションマークの意味とは?
-
[解決済み] Swift 3でdispatch_onceはどうなる?
-
[解決済み] Swift 3、Swift 4、それ以降で dispatch_sync, dispatch_async, dispatch_after などはどうすればいいですか?
-
[解決済み] Swift: print() vs println() vs NSLog()
-
[解決済み】Swiftの辞書にキーが含まれているかどうかを判断し、その値を取得する。
-
[解決済み】Swiftでオブジェクトが与えられた型かどうかを確認する
-
[解決済み】SwiftのwillSetとdidSetの目的は何ですか?
-
[解決済み】weak referenceとunowned referenceの違いは何ですか?
-
[解決済み】Swiftで列挙型の値の名前を取得する方法は?