タグ付けされた質問 「codable」

13
単一の要素のデコードが失敗した場合、Swift JSONDecodeのデコード配列が失敗する
Swift4とCodableプロトコルを使用しているときに、次の問題が発生しました- JSONDecoder配列内の要素をスキップする方法がないようです。たとえば、次のJSONがあります。 [ { "name": "Banana", "points": 200, "description": "A banana grown in Ecuador." }, { "name": "Orange" } ] そして、コード化可能な構造体: struct GroceryProduct: Codable { var name: String var points: Int var description: String? } このjsonをデコードするとき let decoder = JSONDecoder() let products = try decoder.decode([GroceryProduct].self, from: json) 結果productsは空です。JSONの2番目のオブジェクトには"points"キーpointsがありませんが、GroceryProduct構造体ではオプションではないため、これは予期されることです。 質問は、JSONDecoder無効なオブジェクトを「スキップ」できるようにするにはどうすればよいですか?
116 arrays  json  swift  swift4  codable 

7
Swift 4のJSONDecoderを使用すると、欠落しているキーがオプションのプロパティでなくても、デフォルト値を使用できますか?
Swift 4は新しいCodableプロトコルを追加しました。私が使用JSONDecoderすると、CodableクラスのオプションではないすべてのプロパティにJSONのキーが必要になるか、エラーがスローされます。 私のクラスのすべてのプロパティをオプションにすることは、私が本当に望んでいるのはjsonの値またはデフォルト値を使用することなので、不要な手間のように思えます。(このプロパティをnilにしたくありません。) これを行う方法はありますか? class MyCodable: Codable { var name: String = "Default Appleseed" } func load(input: String) { do { if let data = input.data(using: .utf8) { let result = try JSONDecoder().decode(MyCodable.self, from: data) print("name: \(result.name)") } } catch { print("error: \(error)") // `Error message: "Key not found when …
114 json  swift  swift4  codable 


6
Swift4のCodableからプロパティを除外する方法
Swift 4の新しいEncodable/Decodableプロトコルは、JSON(逆)シリアル化を非常に快適にします。ただし、どのプロパティをエンコードし、どのプロパティをデコードするかをきめ細かく制御する方法はまだ見つかりません。 付随するCodingKeys列挙型からプロパティを除外すると、プロセスからプロパティが完全に除外されることに気付きましたが、よりきめ細かい制御を行う方法はありますか?
104 json  swift  codable 

12
Swift 4デコード可能なプロトコルでJSON辞書のタイプを使用してプロパティをデコードする方法
顧客オブジェクトにJSON辞書を含むことができるプロパティCustomerを含むデータ型があるとしましょうmetadata struct Customer { let id: String let email: String let metadata: [String: Any] } { "object": "customer", "id": "4yq6txdpfadhbaqnwp3", "email": "john.doe@example.com", "metadata": { "link_id": "linked-id", "buy_count": 4 } } metadataプロパティには、任意のJSONマップオブジェクトにすることができます。 逆シリアル化されたJSONからプロパティをキャストする前にNSJSONDeserialization、新しいSwift 4 Decodableプロトコルを使用しても、それを行う方法を考えることができません。 DecodableプロトコルでSwift 4でこれを達成する方法を誰かが知っていますか?
103 json  swift  swift4  codable 

4
Swift 4のDecodableプロトコルでカスタムキーを使用するにはどうすればよいですか?
Swift 4では、Decodableプロトコルを介したネイティブJSONエンコーディングおよびデコーディングのサポートが導入されました。これにカスタムキーを使用するにはどうすればよいですか? たとえば、構造体があるとしましょう struct Address:Codable { var street:String var zip:String var city:String var state:String } これをJSONにエンコードできます。 let address = Address(street: "Apple Bay Street", zip: "94608", city: "Emeryville", state: "California") if let encoded = try? encoder.encode(address) { if let json = String(data: encoded, encoding: .utf8) { // Print JSON String print(json) …
102 json  swift  swift4  codable 

6
Swift Decodableプロトコルを使用してネストされたJSON構造体をデコードする方法は?
これが私のJSONです { "id": 1, "user": { "user_name": "Tester", "real_info": { "full_name":"Jon Doe" } }, "reviews_count": [ { "count": 4 } ] } 保存したい構造は次のとおりです(不完全) struct ServerResponse: Decodable { var id: String var username: String var fullName: String var reviewCount: Int enum CodingKeys: String, CodingKey { case id, // How do i …
90 json  swift  swift4  codable 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.