Sök…


Introduktion

Kodbar läggs till med Xcode 9, iOS 11 och Swift 4. Kodbar används för att göra dina datatyper kodade och avkodningsbara för kompatibilitet med externa representationer som JSON.

Kodbar användning för att stödja både kodning och avkodning, förklarar överensstämmelse med Codable, som kombinerar kodningsbara och avkodningsbara protokoll. Den här processen kallas att göra dina typer kodbara.

Användning av kodbar med JSONEncoder och JSONDecoder i Swift 4

Låt oss ta ett exempel med filmstruktur, här har vi definierat strukturen som kodbar. Så vi kan koda och avkoda det enkelt.

struct Movie: Codable {
    enum MovieGenere: String, Codable {
        case horror, skifi, comedy, adventure, animation
    }
    
    var name : String
    var moviesGenere : [MovieGenere]
    var rating : Int
}

Vi kan skapa ett objekt från film som:

let upMovie = Movie(name: "Up", moviesGenere: [.comedy , .adventure, .animation], rating : 4)

UpMovie innehåller namnet “Up” och det är filmGenere är komedi-, äventyrs- och animationshäxa som innehåller 4 betyg av 5.

Koda

JSONEncoder är ett objekt som kodar instanser av en datatyp som JSON-objekt. JSONEncoder stöder kodningsobjektet.

// Encode data
let jsonEncoder = JSONEncoder()
do {
    let jsonData = try jsonEncoder.encode(upMovie)
    let jsonString = String(data: jsonData, encoding: .utf8)
    print("JSON String : " + jsonString!)
}
catch {
}

JSONEncoder ger oss JSON-data som används för att hämta JSON-sträng.

Outputsträngen kommer att vara som:

{
  "name": "Up",
  "moviesGenere": [
    "comedy",
    "adventure",
    "animation"
  ],
  "rating": 4
}

Avkoda

JSONDecoder är ett objekt som avkodar instanser av en datatyp från JSON-objekt. Vi kan få objektet tillbaka från JSON-strängen.

do {
    // Decode data to object
    
    let jsonDecoder = JSONDecoder()
    let upMovie = try jsonDecoder.decode(Movie.self, from: jsonData)
    print("Rating : \(upMovie.name)")
    print("Rating : \(upMovie.rating)")
}
catch {
}

Genom att avkoda JSONData tar vi tillbaka filmobjektet. Så vi kan få alla värden som sparas i det objektet.

Output kommer att vara som:

Name : Up
Rating : 4


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow