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