Office JSON
JSON-Parser für VBA – mit dem Objektmodell, das Sie von MSXML kennen
Eine Webdienst-Antwort laden, mit JPath abfragen, typisierte Werte lesen und JSON zurückschreiben – mit dem Objektmodell von MSXML. Beträge und lange Kennungen kommen genau so zurück, wie sie gesendet wurden.
Ausgangslage
Webdienste und REST-Schnittstellen antworten in JSON, Access und VBA bringen dafür nichts mit. Wer JSON von Hand zerlegt oder über Double liest, verliert schnell eine Ziffer: Beträge werden gerundet, 19-stellige Kennungen passen nicht mehr, und ein Datum verschiebt sich um die Zeitzone.
Die Lösung
Office JSON bringt JSON mit dem Objektmodell von MSXML nach VBA. Zahlen behalten den Text, mit dem sie gelesen wurden – Speichern ändert nie eine Ziffer.
So arbeiten Sie damit:
- Die Antwort mit
LoadJsonladen;ParseErrorsagt, wo ein Text nicht stimmt. - Mit JPath abfragen und typisierte Werte lesen, etwa
GetCurrencyoderGetDate. - Knoten ändern oder anlegen und das Ergebnis als JSON-Text oder in eine Datei schreiben.
- Nichts Neues zu lernen:
JDoc,LoadJsonmitParseError,SelectSingleNode,SelectNodesundFor Eachfunktionieren wie in MSXML. - Exakte Zahlen: Currency und Decimal kommen ohne Umweg über Double zurück, 19-stellige Kennungen bleiben erhalten.
- Abfragen statt Schleifen: JPath nach RFC 9535 mit Pfaden, Platzhaltern, rekursivem Abstieg, Bereichen und Filtern.
- Fehler über die Nummer behandeln: feste Fehlernummern mit dem Pfad oder der Position in der Beschreibung.
Vom Text zum genauen Wert
JDoc lädt den Text, JPath findet den Wert, und die typisierten Getter lesen ihn so, wie er im JSON steht.
Funktionen
- Typisierte Get-Methoden mit Ersatzwert wie bei
Nz():GetString,GetLong,GetCurrency,GetDecimal,GetDateund weitere - Ein Wert, der nicht in den angeforderten Typ passt, wird abgelehnt, nicht abgeschnitten
- Datumswerte nach ISO 8601 in beide Richtungen, mit einer dokumentweiten Regel für Zeitzonen
- JSON erzeugen:
SetValuelegt fehlende Objekte und Arrays an; Knoten kopieren und entfernen - Fehlermeldungen auf Deutsch, Englisch, Slowenisch, Kroatisch oder Italienisch
- Keine Laufzeitinstallation: eine native DLL je Bitbreite, ohne .NET
Technische Daten
- Voraussetzungen: Microsoft Access aus Microsoft 365, dazu eine native DLL in der Bitbreite von Office – ohne .NET und ohne weitere Laufzeit. Technische Daten, Installation und Verteilung
Häufige Fragen
Was muss ich installieren?
Nur die Bibliothek: eine native DLL je Bitbreite, ohne .NET und ohne Laufzeit. Installieren und verteilen
Wie streng liest die Bibliothek JSON?
Nach dem Standard, damit kein Wert falsch gelesen wird. Welche großzügigen Schreibweisen anderer Werkzeuge sie zurückweist und wie Sie damit umgehen, steht in der Fehlerbehebung.
Wie fange ich an?
Mit dem Tutorial: ein Dokument laden, Werte mit JPath lesen, es ändern und speichern – in etwa zehn Minuten. JSON in VBA lesen und schreiben
Ist das WKL Access JSON?
Ja. Office JSON ist der neue Name der Bibliothek, die bisher WKL Access JSON hieß.
Einrichtung, Beispiele und Referenz, Schritt für Schritt: Alles steht in der Dokumentation.
Dokumentation öffnen