Barvna shema: Svetla
Trenutno dejavna stran: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Office JSON » troubleshooting » Eine Get-Methode löst jeTypeMismatch aus

Eine Get-Methode löst jeTypeMismatch aus

GetLong, GetCurrency, GetDate oder eine andere Get-Methode löst den Fehler jeTypeMismatch (vbObjectError + 516) aus, obwohl der Pfad existiert oder sogar ein Ersatzwert angegeben ist.

Umgebung

Alle Versionen von WKL Office JSON.

Ursache

Die Get-Methoden wandeln den Wert um, den sie über den Pfad finden, und lehnen Werte ab, die nicht passen, statt sie abzuschneiden oder den Ersatzwert zurückzugeben:

  • GetLong für eine Zahl mit Nachkommastellen (2.5) oder außerhalb des Long-Bereichs.
  • GetDate für eine Zeichenfolge, die nicht ISO 8601 (Profil nach RFC 3339) entspricht (25.09.2026).
  • GetBoolean für eine andere Zeichenfolge als "true" oder "false" (verglichen ohne Rücksicht auf Groß- und Kleinschreibung, umgebende Leerzeichen werden ignoriert; Zahlen werden akzeptiert: Eine Zahl, die nach der Umwandlung in Decimal 0 ist, ergibt False).
  • GetDouble, GetCurrency oder GetDecimal für eine Zahl außerhalb des Wertebereichs des Typs.
  • Eine Get-Methode für Zahlen bei einer Zeichenfolge, die keine JSON-Zahl ist ("12,5", "007", "+5").
  • GetDate für eine Zahl (zum Beispiel einen Unix-Zeitstempel).
  • Ein Ersatzwert, der sich nicht in den Typ der Get-Methode umwandeln lässt (GetLong(path, "abc")).
  • Jede Get-Methode ohne Ersatzwert bei JSON-null.

Der Ersatzwert ersetzt nur einen fehlenden Pfad oder null. Ein Wert des falschen Typs bleibt ein Fehler, denn ein stillschweigend eingesetzter Ersatzwert würde ein Datenproblem verdecken.

Lösung

  1. Prüfen Sie den Wert: Debug.Print doc.SelectSingleNode(path).ToJson.
  2. Verwenden Sie die Get-Methode, die zu den Daten passt: GetDouble oder GetDecimal für Zahlen mit Nachkommastellen, GetString für Datumswerte in anderen Formaten (wandeln Sie diese dann mit CDate nach Ihren eigenen Regeln um).
  3. Geben Sie für Felder, die null sein können, einen Ersatzwert an, zum Beispiel GetLong("$.qty", 0).
de/wiki/msaccess/json/troubleshooting/getter-type-mismatch.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille