Zum Inhalt springen
BeispielWerk
English

JSON Testdateien zum Download: groß, tief, ungültig

JSON-Parser reagieren unterschiedlich auf BOM, große Zahlen, doppelte Schlüssel und tiefe Verschachtelung. Zum Download stehen Kundenlisten mit 1.000 und 10.000 Einträgen, leere Werte, Dateien mit 20, 100 und 10.000 Ebenen, ein JSON Schema und Dateien mit Syntaxfehlern; große Dateien entstehen beim Klick im Browser. Die Kundendaten sind erfunden, die fehlerhaften Dateien sind Absicht.

19 Varianten auf einer Seite, jede mit eigenem Kopier- oder Download-Knopf. Darunter: 8× Fiktiv, 5× Absichtlich ungültig.

  • JSON: 1000 Kunden (formatiert)Fiktiv

    [
      {
        "kundennummer": "K-100001", …

    Erfundene Kunden (seeded, E-Mail nur example.*, Orte und Straßen erfunden). Felder: kundennummer, vorname, nachname, email, strasse, hausnummer, plz, ort.

  • JSON: 10.000 Kunden (kompakt, eine Zeile)Fiktiv

    [{"kundennummer":"K-100001","vorname":"Stefan","nachname":"Krüger","email":"stefan.krueger.1@example.com","strasse":"Demoplatz","hausnummer":"113","plz":"45660","ort":"Beispielfeld"},{"kundennummer":"K-100002","vorname":"Mehmet","nachname": …

    Erfundene Kunden (seeded, E-Mail nur example.*, Orte und Straßen erfunden). Felder: kundennummer, vorname, nachname, email, strasse, hausnummer, plz, ort. Ohne Einrückung.

  • JSON: leeres Objekt {}

    {}
  • JSON: leeres Array []

    []
  • JSON: nur null

    null
  • JSON: leere Datei (0 Byte)Absichtlich ungültig

    (leer)

    Eine leere Datei ist kein gültiges JSON.

  • JSON: gültig, aber mit BOM am AnfangFiktiv

    {"name": "Müller", "ort": "Köln"}
    

    Gültiges JSON mit UTF-8-BOM. RFC 8259 verbietet das BOM; JSON.parse in Browsern verschluckt sich daran, manche Parser ignorieren es.

  • JSON mit Fehler: abgeschnittenAbsichtlich ungültig

    {
      "kunden": [
        {"id": 1, "name": "Anna"}, …
  • JSON mit Fehler: Komma am EndeAbsichtlich ungültig

    {
      "a": 1,
      "b": [1, 2, 3,], …
  • JSON mit Kommentaren (JSONC)Absichtlich ungültig

    {
      // Einstellungen
      "port": 3000, /* Standardport */ …

    Gültiges JSONC (etwa tsconfig.json oder VS Code), aber kein gültiges JSON.

  • JSON mit Fehler: einfache AnführungszeichenAbsichtlich ungültig

    {'name': 'Anna', 'alter': 30}
    
  • JSON: Array mit 20 Ebenen

    [[[[[[[[[[[[[[[[[[[["ende"]]]]]]]]]]]]]]]]]]]]
  • JSON: Array mit 100 Ebenen

    [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[1]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

    Manche Parser lehnen schon bei 64 oder 100 Ebenen ab.

  • JSON: Array mit 10.000 Ebenen (Stapelüberlauf-Test)

    [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ …

    Gültig, aber rekursive Parser können mit einem Stapelüberlauf abbrechen (20 KB).

  • JSON: große Zahlen und GenauigkeitFiktiv

    {
      "sicher": 9007199254740991,
      "unsicher": 9007199254740993, …

    Gültige Syntax, aber JavaScript rechnet mit Double: 9007199254740993 wird zu ...992, 1e400 zu Infinity.

  • JSON: doppelte SchlüsselFiktiv

    {
      "name": "erster",
      "name": "zweiter" …

    Syntaktisch gültig; die meisten Parser behalten den letzten Wert.

  • JSON: Unicode-Escapes und SonderzeichenFiktiv

    {"umlaute": "\u00e4\u00f6\u00fc\u00df", "emoji": "😀", "zeilenumbruch": "a\nb", "tab": "a\tb", "nul": "a\u0000b"}
    

    Enthält auch ein maskiertes Nullzeichen (\u0000).

  • JSON: Liste mit uneinheitlichen ObjektenFiktiv

    [
      {"id": 1, "name": "Anna", "email": "anna@example.com"},
      {"id": 2, "name": "Ben"}, …

    Fehlende Felder, Typwechsel (id als Text), null und ein leeres Objekt.

  • JSON Schema (2020-12) für einen KundenFiktiv

    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "$id": "https://example.com/schemas/kunde.json", …

    Passt zu den Kunden-JSON-Dateien dieser Seite (kunden-1000.json und kunden-10000.json), mit Ajv geprüft.

Weitere Themen in Testdateien