JSON Flashcards

1
Q

Hvad står JSON for?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hvad er Codable, Encodable og Decodable?

A

Encodable er protokollen som fortæller Swift at du gerne vil konvertere kode-objekter til JSON-objekter. Dette bruges typisk når man vil sende data til serveren.

Decodable er protokollen som fortæller Swift at du gerne vil konvertere JSON-objekter til kode-objekter. Dette bruges typisk når man vil modtage data fra serveren.

Codable er begge ting.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hvad gør CodingKeys i det her kode?

{
    "name": "Josh",
    "age": 30,
    "full_name_of_person": "Josh Smith"
}

struct Person: Codable {
    var name: String
    var age: Int
    var fullName: String
    
    enum CodingKeys: String, CodingKey {
        case name
        case age
        case fullName = "full_name_of_person"  //this string value should match EXACTLY with the corresponding key in the JSON object
    }
}
A

I Swift bruger man typisk camelCase.
Hvis det data man modtager ikke er camelCase, som fx full_ name_ of_ person, så kan man bruge CodingKeys til at konvertere det til camelCase når man modtager det fra serveren. Så det nu hedder fullName i stedet i ens model.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hvilke to klasser bruger Swift til encode og decode?

A

JSONEncoder og JSONDecoder

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Er der andre smarte måder at løse problemet som CodingKeys gør? Hint: jsonDecoder.keyDecodingStrategy

A

Her ses hvordan .keyDecodingStrategy kan bruges til at løse det samme problem

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Swift er et typestærkt sprog i modsætning til JSON. Hvordan får man dem til at arbejde sammen?

A

Får ikke at miste typeinformationen, når konverterer til/fra JSON, opretter man klasser/structs til at repræsentere den ønskede datastruktur fx

How well did you know this?
1
Not at all
2
3
4
5
Perfectly