2017-12-26 5 views
0

Wie funktioniert das schnelle 4 Decodable Protokoll mit dem '-' Buchstaben? Zum Beispiel:Swift 4 Dekodieren Sie json mit dem '-' Buchstaben

[{ 
    "trigger": { 
     "url-filter": "webkit.org", 
     "resource-type": ["image"] 
}, 
    "action": { 
     "selector": "#logo", 
     "type": "block" 
    } 
}] 

In My Swift Klasse:

struct blockerJson : Decodable { 
    let action : action 
    let trigger : trigger 

    struct action : Decodable { 
     let selector : String 
     let type : String 
    } 

    struct trigger : Decodable { 
     let urlFilter : String 
     let resourceType : String 
    } 
} 

Ich weiß nicht, wie die Klasse zu ändern, aber die json nicht ändern kann ...

+0

Es funktioniert wie jedes andere unterstützte Zeichen. – vadian

+0

Sie müssen es nach Ihren Bedürfnissen in einer JSON-Antwort, die Sie haben. –

+0

Mögliches Duplikat von [Wie benutze ich benutzerdefinierte Schlüssel mit dem Decodable-Protokoll von Swift 4?] (Https://stackoverflow.com/questions/44396500/how-doi-i-use-custom-keys-with-swift-4s-decodable (Protokoll) – Hamish

Antwort

1

Dieser Code parse trigger block

struct Trigger: Decodable { 
    var urlFilter: String 
    var resourceType: [String] 

enum CodingKeys: String, CodingKey { 
     case urlFilter = "url-filter" 
     case resourceType = "resource-type" 
    } 
} 
+0

Xcode show error with [Typ 'trigger' entspricht nicht dem Protokoll 'Decodable'] ... –

+0

@LeoWu Bitte beachten Sie den Tippfehler 'urlFilter' (zwei' l') vs 'urlFilter' (ein' l') – vadian

+0

das ist Arbeit, danke –