Color scheme: Riviera
You are here: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Office JSON » how-to » Ungültiges JSON behandeln

Ungültiges JSON behandeln

Sie reagieren auf JSON, das sich nicht parsen lässt, und teilen dem Benutzer oder dem Protokoll mit, wo das Problem liegt.

Lösungsüberblick

LoadJson und Load geben für ungültige Eingaben False zurück und füllen ParseError mit dem Fehlercode, der Zeile und Spalte, dem Text der Zeile und der Ursache – so wie loadXML in MSXML. Beim Laden wird kein VBA-Fehler ausgelöst.

Umsetzung

Dim doc As New JDoc
If Not doc.LoadJson(text) Then
    With doc.ParseError
        Debug.Print "Line " & .Line & ", column " & .LinePos & ": " & .Reason
        Debug.Print .SrcText
        If .LinePos > 0 Then Debug.Print String(.LinePos - 1, " ") & "^"
    End With
    Exit Sub
End If

Für eine Datei:

If Not doc.Load(CurrentProject.Path & "\settings.json") Then
    MsgBox doc.ParseError.Reason, vbExclamation
End If

Hinweise

  • Prüfen Sie immer den Rückgabewert. Nach einem fehlgeschlagenen Laden lösen nur die Get-Methoden ohne Ersatzwert den Fehler des Ladens erneut aus (jeParseError oder, nach Load, jeFileError); Abfragen melden nichts (SelectNodes gibt eine leere Liste zurück, eine For Each-Schleife darüber läuft also nicht; SelectSingleNode und Root geben Nothing zurück; Exists gibt False zurück), und Get-Methoden mit Ersatzwert geben den Ersatzwert zurück.
  • ParseError.FilePos ist die Zeichenposition im gesamten Text, gezählt ab 0; Line und LinePos zählen ab 1.
  • Kommentare, Kommas nach dem letzten Eintrag und einfache Anführungszeichen sind ungültiges JSON; die Ursache nennt das unerwartete Zeichen, das Komma oder die Anführungszeichen (Fehlerbehebung).
  • Eine fehlende oder nicht lesbare Datei meldet Load ebenfalls in ParseError; Save löst dagegen jeFileError aus.

Verwandte Themen

de/wiki/msaccess/json/how-to/handle-invalid-json.txt · Last modified: by Wolfgang van der Stille