JSON-Validator

Fortschrittlicher Online-Validator für JSON-Syntax und Schemaprüfung – vollständig browserbasiert und datenschutzorientiert.

Validieren Sie Ihr JSON sofort

JSON mit Schema validieren
Unterstützte Schema-Version: Entwurf-07.

Dieser kostenlose Online-JSON-Validator ermöglicht es Ihnen, Ihre JSON-Daten sofort auf Syntaxfehler und strukturelle Probleme zu überprüfen. Egal, ob Sie rohe API-Antworten, Konfigurationsdateien oder strukturierte Payloads validieren – unser Tool hebt Fehler in Echtzeit hervor und bietet sogar automatische Korrekturen an. Für eine strengere Validierung fügen Sie ein JSON-Schema hinzu und setzen Sie Regeln wie Pflichtfelder, spezifische Datentypen und Formate (E-Mail, URI usw.) durch. Das Tool ist vollständig konform mit JSON Schema Draft-07. Die gesamte Verarbeitung erfolgt in Ihrem Browser – Ihre Daten verlassen niemals Ihr Gerät.

Was ist JSON-Validierung?

JSON (JavaScript Object Notation) ist ein weitverbreitetes, leichtgewichtiges Format zum Datenaustausch, das darauf ausgelegt ist, sowohl für Menschen gut lesbar als auch für Maschinen einfach zu verarbeiten und zu erzeugen zu sein. Sein Hauptzweck besteht darin, strukturierte Daten — Objekte, Arrays, Zeichenketten, Zahlen, Booleans und Nullwerte — sprachunabhängig darzustellen.

Die JSON-Validierung ist der Prozess der programmatischen Überprüfung, ob ein JSON-Dokument sowohl syntaktisch als auch strukturell korrekt ist. Dabei werden zwei Hauptaspekte geprüft:

  • Syntaktische Validierung: Sicherstellung, dass der Rohtext der formalen Grammatik gemäß der ECMA-404 JSON-Spezifikation entspricht. Parser in den meisten modernen Programmiersprachen (z. B. JSON.parse() in JavaScript, json.loads() in Python, JSONDecoder in Java) erwarten eine gültige Syntax und lösen Fehler aus, wenn die Eingabe fehlerhaft ist.
  • Strukturelle (Schema-)Validierung: Über die Syntax hinaus überprüft die Schema-Validierung, ob die JSON-Daten einer erwarteten Struktur entsprechen, einschließlich Datentypen, erforderlicher Eigenschaften, Wertbeschränkungen sowie verschachtelter Objekte und Arrays. Die Schema-Validierung wird in der Regel mit JSON Schema durchgeführt, das Regeln definiert, welche Daten als gültig gelten.

Warum JSON validieren?

JSON-Validierung ist entscheidend, wenn Daten für die Übertragung, Speicherung oder die Kommunikation zwischen Diensten serialisiert werden. Wichtige Gründe sind:

  • Fehlervermeidung: Erkennen und Melden von Syntaxfehlern (z. B. fehlende Kommas, nicht übereinstimmende Klammern, unzulässige Zeichen) frühzeitig – bevor die Datenverarbeitung erfolgt.
  • Datenintegrität & Sicherheit: Ablehnung von fehlerhaften oder bösartigen JSON-Nutzlasten zur Vermeidung von Backend-Abstürzen, Injektionsangriffen und Datenbeschädigungen.
  • Typsicherheit: Strikte Typprüfung durchsetzen – zum Beispiel sicherstellen, dass ein Feld, das als Boolean erwartet wird, nicht als Zeichenfolge gesendet wird oder dass UUIDs, E-Mail-Adressen und Zahlen das korrekte Format einhalten.
  • Sprachübergreifende Kompatibilität: Stellen Sie sicher, dass in einer Umgebung (z. B. Node.js) erzeugte JSON-Daten problemlos und fehlerfrei in einer anderen Umgebung (z. B. Python, Go, Java) verwendet werden können, um Probleme bei der Serialisierung und Deserialisierung zu vermeiden.
  • Wartbarkeit & Robustheit: Validierte Datenstrukturen verbessern die Nachvollziehbarkeit und verringern das Risiko schwer nachvollziehbarer Fehler in Konfigurationsdateien, Protokollen sowie API-Anfragen und -Antworten.
  • Datenschutz & Sicherheit: Die Validierung kann vollständig clientseitig (im Browser) durchgeführt werden, wodurch verhindert wird, dass Rohdaten oder sensible Informationen das Gerät des Nutzers für die Überprüfung verlassen.

Häufige JSON-Validierungsfehler (mit ausführlichen Beispielen)

Unquoted-Schlüssel

Alle Schlüssel in JSON-Objekten müssen als doppelt umschlossene Strings angegeben werden.

{ name: "Alice" }
{ "name": "Alice" }

Viele JSON-ähnliche Formate (z. B. JavaScript-Objektliterale) erlauben ungequotete Schlüssel, aber standardmäßiges JSON tut dies nicht.

Einfache Anführungszeichen

JSON-Zeichenketten müssen ausschließlich doppelte Anführungszeichen verwenden; einfache Anführungszeichen sind nicht erlaubt.

{ 'name': 'Bob' }
{ "name": "Bob" }

Die Verwendung von einfachen Anführungszeichen führt in allen konformen JSON-Bibliotheken zu Parserfehlern.

Nachgestellte Kommata

Kein abschließendes Komma nach dem letzten Element in einem Objekt oder Array.

{
  "a": 1,
  "b": 2,
}
{
  "a": 1,
  "b": 2
}

Nachgestellte Kommata funktionieren in JavaScript, jedoch nicht in strengen JSON-Parsern.

Unsachgemäße Maskierung von Zeichen

Anführungszeichen und Sonderzeichen innerhalb von Zeichenketten müssen mit einem Rückwärtsschrägstrich (Backslash) maskiert werden.

{ "quote": "Tom sagte \"hallo\"" }
{ "quote": "Tom sagte \"hallo\"" }

Weitere Escape-Sequenzen umfassen \\ für den Rückwärtsschrägstrich, \n für neue Zeilen und \t für Tabulatoren.

Falsche Datentypen

Zeichenketten sollten nicht für Zahlen, Wahrheitswerte oder Null verwendet werden.

{ "enabled": "wahr", "count": "10" }
{ "enabled": true, "count": 10 }

JSON unterscheidet zwischen Booleschen Werten, Zahlen und Zeichenketten – stellen Sie sicher, dass der richtige Typ verwendet wird.

Nicht-primitiven Schlüsseln

JSON-Objektschlüssel müssen immer Zeichenketten sein; Sie können keine Zahlen, Booleschen Werte oder andere Typen als Schlüssel verwenden.

{ 123: "abc" }
{ "123": "abc" }

Doppelte Schlüssel

Obwohl im JSON-Standard erlaubt, sind doppelte Schlüssel eine häufige Fehlerquelle.

{ "name": "Alice", "name": "Bob" }

Die meisten Parser behalten nur den letzten Wert („Bob“) und verwerfen zuvor eingegebene Werte stillschweigend.

Verwendung von Kommentaren

Standard-JSON erlaubt keine Kommentare, obwohl einige Editoren sie unterstützen.

{
  // Benutzerinformationen
  "name": "Alice"
}
{
  "name": "Alice"
}

Schema-Validierung: Struktur- und Datentypenprüfung für maximale Datengenauigkeit

JSON Schema ist ein leistungsstarker Standard zur Definition und Validierung der erwarteten Struktur von JSON-Dokumenten. Damit können Sie festlegen:

  • Pflichtfelder (`required`)
  • Datentypen (`type`: Zeichenfolge, Zahl, Wahrheitswert, Objekt, Array, Null)
  • Zeichenkettenformate (`format`: E-Mail, UUID, Datum-Uhrzeit, usw.)
  • Mustererkennung für Zeichenketten (`pattern`)
  • Zahlenbereiche (`Mindestwert`, `Höchstwert`)
  • Array-Länge und Elementvalidierung (`minItems`, `maxItems`, `items`)
  • Verschachtelte Validierung für Objekte und Arrays
  • Enum-Einschränkungen (`enum`)

Beispiel: Benutzerschema (Entwurf-07)

{
  "type": "object",
  "properties": {
    "id":    { "type": "string", "format": "uuid" },
    "name":  { "type": "string", "minLength": 1 },
    "email": { "type": "string", "format": "email" },
    "is_active": { "type": "boolean" }
  },
  "required": ["id", "name", "email"],
  "additionalProperties": false
}

Was dies durchsetzt:

  • Die ID muss ein gültiger UUID-String sein.
  • Der Name muss eine nicht-leere Zeichenkette sein.
  • Die E-Mail muss dem Standard-E-Mail-Format entsprechen.
  • is_active (optional) muss ein boolescher Wert sein.
  • Keine anderen Eigenschaften als die oben definierten sind erlaubt.

Praxisbeispiel: Validierung von Stripe API-Antworten

Angenommen, Sie erhalten JSON-Antworten von der Stripe-API (z. B. PaymentIntent). Eine Schema-Validierung stellt sicher, dass Sie niemals unvollständige oder falsch typisierte Daten verarbeiten.

{
  "type": "object",
  "properties": {
    "id":      { "type": "string", "pattern": "^pi_" },
    "object":  { "type": "string", "const": "payment_intent" },
    "amount":  { "type": "integer", "minimum": 1 },
    "currency":{ "type": "string", "minLength": 3, "maxLength": 3 },
    "status":  { "type": "string", "enum": [
      "erfordert_zahlungsmethode",
      "erfordert_bestaetigung",
      "wird_verarbeitet",
      "erfolgreich",
      "abgebrochen"
    ]}
  },
  "required": ["id", "object", "amount", "currency", "status"],
  "additionalProperties": false
}
  • Die ID muss mit "pi_" beginnen
  • Objekt muss immer "payment_intent" sein
  • Der Betrag muss eine ganze Zahl größer oder gleich 1 sein
  • Währung muss ein dreibuchstabiger Code sein (z. B. "usd", "eur")
  • Status muss einer der angegebenen Werte sein

Vorteile

  • Frühe Fehlererkennung: Entdecken Sie kritische API-Änderungen oder unvollständige Daten, bevor sie Ihre Geschäftslogik beeinträchtigen.
  • Automatisiertes Testen: Verwenden Sie Schemata in CI/CD-Pipelines, um reale und simulierte Antworten zu validieren.
  • Bereichsübergreifende Konsistenz: Standardisieren Sie Datenverträge zwischen Frontend, Backend und Drittanbieter-APIs.

Eine korrekte JSON-Validierung—einschließlich Syntax- und Schema-Überprüfung—verhindert subtile Fehler, gewährleistet bewährte Praktiken und schützt Ihre Anwendungen vor fehlerhaften oder bösartigen Eingaben. Ob in Konfigurationsdateien, API-Daten oder der Kommunikation zwischen Diensten eingesetzt, ist eine zuverlässige Validierung die Grundlage moderner Softwaresysteme.

Datenschutz & Sicherheit

Alle Validierungs- und Schemaprüfungen erfolgen lokal in Ihrem Browser. Es werden keine Daten hochgeladen oder protokolliert. Ihr JSON bleibt vollkommen privat.

Code-Beispiele zur JSON-Validierung

Erfahren Sie, wie Sie JSON in verschiedenen Programmiersprachen mithilfe integrierter Bibliotheken oder gängiger Frameworks validieren. Diese Beispiele zeigen sowohl die Syntaxprüfung als auch die Schema-Validierung.

JavaScript (Node.js)
Install: Standard library
const jsonString = '{"name":"Alice","age":30}';
try {
  const obj = JSON.parse(jsonString);
  console.log("Valid JSON:", obj);
} catch (e) {
  console.error("Invalid JSON!", e.message);
}
JavaScript (Node.js) with ajv (Schema validation)
Install: npm install ajv
const Ajv = require("ajv");
const ajv = new Ajv();
const schema = { type: "object", properties: { age: { type: "integer" } }, required: ["age"] };
const data = { age: 30 };
const validate = ajv.compile(schema);
console.log(validate(data) ? "Valid!" : ajv.errorsText(validate.errors));
Python
Install: Standard library (json)
import json
try:
    obj = json.loads('{"name":"Alice","age":30}')
    print("Valid JSON:", obj)
except json.JSONDecodeError as e:
    print("Invalid JSON:", e)
Python with jsonschema
Install: pip install jsonschema
import json, jsonschema
schema = {
    "type": "object",
    "properties": { "age": { "type": "integer" } },
    "required": ["age"]
}
data = {"age": 30}
try:
    jsonschema.validate(data, schema)
    print("Valid!")
except jsonschema.ValidationError as e:
    print("Schema validation error:", e)
Go
Install: Standard library (encoding/json)
package main
import (
  "encoding/json"
  "fmt"
)
func main() {
  data := []byte(`{"name":"Alice","age":30}`)
  var obj map[string]interface{}
  if err := json.Unmarshal(data, &obj); err != nil {
    fmt.Println("Invalid JSON:", err)
  } else {
    fmt.Println("Valid JSON:", obj)
  }
}
Java
Install: com.fasterxml.jackson.core:jackson-databind
import com.fasterxml.jackson.databind.ObjectMapper;
public class Main {
  public static void main(String[] args) {
    String json = "{"name":"Alice","age":30}";
    try {
      Object obj = new ObjectMapper().readTree(json);
      System.out.println("Valid JSON: " + obj);
    } catch (Exception e) {
      System.out.println("Invalid JSON: " + e.getMessage());
    }
  }
}
C#
Install: Standard library (System.Text.Json)
using System;
using System.Text.Json;
class Program {
  static void Main() {
    string json = "{"name":"Alice","age":30}";
    try {
      var doc = JsonDocument.Parse(json);
      Console.WriteLine("Valid JSON!");
    } catch (JsonException e) {
      Console.WriteLine("Invalid JSON: " + e.Message);
    }
  }
}
PHP
Install: Standard library (json_decode)
<?php
$json = '{"name":"Alice","age":30}';
$obj = json_decode($json);
if (json_last_error() === JSON_ERROR_NONE) {
  echo "Valid JSON";
} else {
  echo "Invalid JSON: " . json_last_error_msg();
}
Ruby
Install: Standard library (json)
require 'json'
begin
  obj = JSON.parse('{"name":"Alice","age":30}')
  puts "Valid JSON!"
rescue JSON::ParserError => e
  puts "Invalid JSON: #{e.message}"
end
Bash (Linux/macOS) with jq
Install: brew install jq (or apt-get install jq)
echo '{"name":"Alice","age":30}' | jq empty && echo "Valid" || echo "Invalid"
Rust
Install: cargo add serde_json
fn main() {
  let data = r#"{"name":"Alice","age":30}"#;
  match serde_json::from_str::<serde_json::Value>(data) {
    Ok(_) => println!("Valid JSON!"),
    Err(e) => println!("Invalid JSON: {}", e),
  }
}
Kotlin
Install: Standard library (org.json)
import org.json.JSONObject
fun main() {
  try {
    val obj = JSONObject("{\"name\":\"Alice\",\"age\":30}")
    println("Valid JSON: $obj")
  } catch (e: Exception) {
    println("Invalid JSON: ${e.message}")
  }
}
Swift
Install: Standard library (JSONSerialization)
import Foundation
let json = "{\"name\":\"Alice\",\"age\":30}"
if let data = json.data(using: .utf8) {
  do {
    let _ = try JSONSerialization.jsonObject(with: data)
    print("Valid JSON!")
  } catch {
    print("Invalid JSON: \(error)")
  }
}
TypeScript
Install: Standard library
const jsonString = '{"name":"Alice","age":30}';
try {
  const obj = JSON.parse(jsonString);
  console.log("Valid JSON:", obj);
} catch (e) {
  console.error("Invalid JSON!", e.message);
}
SQL (PostgreSQL)
Install: Standard (with jsonb functions)
SELECT '{"name":"Alice","age":30}'::jsonb; -- Will error if not valid JSON
MySQL
Install: Standard (5.7+)
SELECT JSON_VALID('{"name":"Alice","age":30}');
PowerShell
Install: Standard
$json = '{"name":"Alice","age":30}'
try {
  $obj = $json | ConvertFrom-Json
  Write-Output "Valid JSON!"
} catch {
  Write-Output "Invalid JSON: $($_.Exception.Message)"
}
Perl
Install: cpan JSON
use JSON;
my $str = '{"name":"Alice","age":30}';
eval { decode_json($str) };
print $@ ? "Invalid JSON: $@" : "Valid JSON!";
Dart
Install: Standard library (dart:convert)
import 'dart:convert';
void main() {
  const jsonString = '{"name":"Alice","age":30}';
  try {
    final obj = jsonDecode(jsonString);
    print('Valid JSON: $obj');
  } catch (e) {
    print('Invalid JSON: $e');
  }
}
Elixir
Install: mix deps.get jason
json = ~s({"name":"Alice","age":30})
case Jason.decode(json) do
  {:ok, _} -> IO.puts("Valid JSON!")
  {:error, err} -> IO.puts("Invalid JSON: #{err}")
end
Scala
Install: libraryDependencies += "com.typesafe.play" %% "play-json" % "2.9.4"
import play.api.libs.json._
object Main extends App {
  val str = """{"name":"Alice","age":30}"""
  try {
    val json = Json.parse(str)
    println("Valid JSON!")
  } catch {
    case e: Exception => println("Invalid JSON: " + e.getMessage)
  }
}

Über dieses Tool

Dieses Tool wurde vom Team von Itself Tools entwickelt, den Schöpfern einer Vielzahl schneller, datenschutzorientierter Online-Dienstprogramme, die weltweit von Millionen genutzt werden. Mit jahrelanger Erfahrung in der Entwicklung browserbasierter Werkzeuge, die Einfachheit, Geschwindigkeit und Zuverlässigkeit in den Vordergrund stellen, haben wir unser Spektrum auf entwicklerorientierte Anwendungen ausgeweitet – wie dieses hier –, das technische Aufgaben für Programmierer, Analysten und digitale Fachleute erleichtern soll.