Zum Inhalt

JSON-Struktur verstehen

Aufgabe

Beantworten Sie die folgenden Fragen basierend auf dem untenstehenden JSON-Beispiel (Super Hero Squad).

JSON-Beispiel

{
  "squadName": "Super hero squad",
  "homeTown": "Metro City",
  "formed": 2016,
  "secretBase": "Super tower",
  "active": true,
  "members": [
    {
      "name": "Molecule Man",
      "age": 29,
      "secretIdentity": "Dan Jukes",
      "powers": [
        "Radiation resistance",
        "Turning tiny",
        "Radiation blast"
      ]
    },
    {
      "name": "Madame Uppercut",
      "age": 39,
      "secretIdentity": "Jane Wilson",
      "powers": [
        "Million tonne punch",
        "Damage resistance",
        "Superhuman reflexes"
      ]
    },
    {
      "name": "Eternal Flame",
      "age": 1000000,
      "secretIdentity": "Unknown",
      "powers": [
        "Immortality",
        "Heat Immunity",
        "Inferno",
        "Teleportation"
      ]
    }
  ]
}

Lösungen

  1. Welche Art von Datenstruktur ist das äußere Element des JSON-Beispiels? Das äußere Element ist ein Objekt (erkennbar an den geschweiften Klammern {}).

  2. Wie viele Schlüssel enthält das äußere JSON-Objekt und wie heißen sie? Es enthält 6 Schlüssel: squadName, homeTown, formed, secretBase, active, members.

  3. Welchen Datentyp haben die Werte der Schlüssel squadName, formed und active?

  4. squadName: String (Zeichenkette)
  5. formed: Number (Zahl)
  6. active: Boolean (Wahrheitswert)

  7. Was befindet sich in der Liste, die unter dem Schlüssel members gespeichert ist? Eine Liste (Array) von 3 Objekten, wobei jedes Objekt einen Superhelden repräsentiert.

  8. Wie greift man auf den Namen des zweiten Mitglieds in der members-Liste zu? Über den Index 1 (da Arrays bei 0 beginnen) und den Schlüssel name: members[1].name (ergibt "Madame Uppercut").

  9. Welchen Datentyp hat powers und woraus besteht dieses Element? Es ist ein Array (Liste) von Strings (Zeichenketten), die die Superkräfte beschreiben.

  10. Welchen Datentyp hat der Wert von secretIdentity beim ersten Mitglied? Der Wert ist ein String ("Dan Jukes").

  11. Warum stehen Zeichenketten in Anführungszeichen, Zahlen aber nicht? In der JSON-Syntax müssen Strings immer in doppelten Anführungszeichen stehen, um sie als Text zu kennzeichnen. Zahlen werden ohne Anführungszeichen geschrieben, damit sie als numerische Werte (für Berechnungen etc.) interpretiert werden können.

  12. Welche Unterschiede erkennst du zwischen den drei Objekten in der members-Liste? Die Struktur (Schlüssel) ist identisch, aber die Werte unterscheiden sich. Insbesondere:

  13. Das dritte Mitglied ("Eternal Flame") hat 4 Kräfte in der powers-Liste, während die anderen beiden nur 3 haben.
  14. Das Alter (age) variiert stark (29, 39, 1000000).

  15. Was passiert, wenn man in einem JSON-Objekt ein Komma zu viel oder zu wenig setzt? Das JSON wird ungültig (Invalid JSON). Parser werfen einen Syntax-Fehler (SyntaxError), und die Daten können nicht verarbeitet werden.