Barvna shema: Svetla
Trenutno dejavna stran: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Office JSON » WKL Office JSON: JSON in Access und VBA

WKL Office JSON: JSON in Access und VBA

VBA bringt keinen eigenen JSON-Parser mit, und eine Zahl, die als Double gelesen wird, behält nur 15 bis 17 signifikante Stellen: Aus 9007199254740993 wird 9007199254740992. WKL Office JSON gibt Access und VBA das Objektmodell, das Sie von MSXML kennen. Sie laden die Antwort eines Webdienstes, durchsuchen sie mit JPath, lesen typisierte Werte, ändern oder erzeugen Knoten und schreiben JSON-Text oder eine Datei; Beträge und 19-stellige Kennungen liest die Bibliothek ohne Umweg über Double. Je Bitbreite von Office gibt es eine DLL, eine .NET-Laufzeit brauchen Sie nicht. Was die Bibliothek annimmt, umwandelt und ablehnt: Werte und Grenzen.

Bis Release 1.0.3 hieß die Bibliothek WKL Access JSON.

graph TD
    D["JDoc – LoadJson, Load, Save, Json, ParseError, DateZone"] -->|"Root"| N["JNode (beliebiger Knoten) – Item, Value, Path, ChildNodes, JPath, SelectNodes, GetString …"]
    N --> E["JElement – JSON-Objekt: Keys, HasKey, SetValue, AddElement, AddArray, RemoveKey"]
    N --> A["JArray – JSON-Array: Add, Insert, RemoveAt"]
    N --> V["JValue – Zeichenfolge, Zahl, true/false, null"]
    N -->|"SelectNodes, ChildNodes"| L["JNodeList – Item, Count, For Each"]
    D -->|"Laden fehlgeschlagen"| P["JParseError – Line, LinePos, SrcText, Reason"]

Wichtige Funktionen

  • Konzepte von MSXML: JDoc als Dokument, LoadJson mit ParseError, SelectSingleNode und SelectNodes, Knotenlisten mit For Each.
  • JPath nach RFC 9535 (JSONPath): Pfade, Platzhalter, rekursiver Abstieg, Bereiche (Slices), Filter mit Vergleichen und Funktionen.
  • Typisierte Get-Methoden mit Ersatzwert: GetString, GetLong, GetDouble, GetCurrency, GetDecimal, GetDate, GetBoolean, GetValue, jeweils mit einem optionalen Ersatzwert wie bei Nz().
  • Exakte Zahlen: Zahlen behalten den Text, mit dem sie gelesen wurden; Json, Save und GetString ändern daher nie eine Ziffer. GetCurrency und GetDecimal wandeln diesen Text ohne Umweg über Double um; Currency rundet anschließend auf vier Nachkommastellen, Decimal auf 28 bis 29 signifikante Stellen. 19-stellige Kennungen bleiben als Decimal erhalten.
  • Datumswerte: ISO 8601 (Profil nach RFC 3339) in beide Richtungen, mit einer dokumentweiten Regel für Zeitzonen.
  • JSON erzeugen: SetValue legt fehlende Objekte und Arrays automatisch an; außerdem verschachtelte Objekte, Kopien von Knoten und das Entfernen von Knoten.
  • Verhalten wie in Access: Standardmember Item, Positionen ab 0, Is für die Identität, feste Fehlernummern mit dem Pfad oder der Position in der Beschreibung.
  • Keine Laufzeitinstallation: eine NativeAOT-DLL je Bitbreite.

Grundkonzepte

Dokument und Knoten. Ein JDoc enthält genau einen Baum. Jeder Knoten ist ein JNode; seine konkrete Klasse ist JElement (Objekt), JArray oder JValue, und NodeType gibt an, welche. Knoten, die Sie mit CreateElement, CreateArray und CreateValue erzeugen, sind frei, bis Sie sie in das Dokument einfügen.

Pfade. JPath-Ausdrücke beginnen an der Wurzel ($) oder, ohne $, an dem Knoten, für den Sie die Methode aufrufen. SelectSingleNode gibt den ersten Treffer oder Nothing zurück, SelectNodes alle Treffer, und Exists gibt an, ob es einen Treffer gibt; die Get-Methoden lesen den ersten Treffer als typisierten Wert.

Werte. Eine Zahl wird im natürlichen VBA-Typ gelesen (Long, Decimal oder Double); die Get-Methoden wandeln in den angeforderten Typ um und lehnen Werte, die nicht hineinpassen, ab, statt sie abzuschneiden. JSON-null ist in VBA Null.

Fehler. Das Laden gibt wie bei MSXML False zurück und füllt ParseError. Alle anderen Fehler lösen einen VBA-Fehler mit einer Nummer aus JErrorCode aus; ein Fehler, den die Bibliothek nicht vorhersieht, kommt als &H8000FFFF mit dem Text der Ursache an, fehlender Arbeitsspeicher als &H8007000E. Die Meldungen (ParseError.Reason, Err.Description) erscheinen auf Englisch, Deutsch, Slowenisch, Kroatisch oder Italienisch: in der Sprache, die die WKL-Steuerelemente im selben Prozess verwenden, sonst in der Anzeigesprache von Windows, sonst auf Englisch. Werten Sie Fehler immer anhand der Nummer aus, nie anhand des Textes; die Nummer ist in jeder Sprache dieselbe.

Verwandte Themen

de/wiki/msaccess/json/overview.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille