Farbschema: Hell
Sie befinden sich hier: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Office JSON » troubleshooting » Bralna metoda sproži jeTypeMismatch

Bralna metoda sproži jeTypeMismatch

GetLong, GetCurrency, GetDate ali druga bralna metoda sproži napako jeTypeMismatch (vbObjectError + 516), čeprav pot obstaja, ali celo kljub podani nadomestni vrednosti.

Okolje

Vse različice WKL Office JSON.

Vzrok

Bralne metode pretvorijo vrednost, ki jo najdejo po poti, vrednosti, ki ne ustrezajo, pa zavrnejo, namesto da bi jih okrnile ali vrnile nadomestno vrednost:

  • GetLong za število z decimalnim delom (2.5) ali zunaj obsega Long.
  • GetDate za niz, ki ni ISO 8601 (profil RFC 3339) (25.09.2026).
  • GetBoolean za niz, ki ni "true" ali "false" (primerja se ne glede na velike in male črke, presledki okrog se prezrejo; števila so sprejeta: število, ki je po pretvorbi v Decimal enako 0, je False).
  • GetDouble, GetCurrency ali GetDecimal za število zunaj obsega tipa.
  • Številska bralna metoda za niz, ki ni število JSON ("12,5", "007", "+5").
  • GetDate za število (na primer časovni žig Unix).
  • Nadomestna vrednost, ki je ni mogoče pretvoriti v tip bralne metode (GetLong(path, "abc")).
  • Vsaka bralna metoda brez nadomestne vrednosti za JSON null.

Nadomestna vrednost nadomesti samo manjkajočo pot ali null. Vrednost napačnega tipa ostane napaka, ker bi tiho nadomeščanje z nadomestno vrednostjo prikrilo težavo v podatkih.

Rešitev

  1. Preverite vrednost: Debug.Print doc.SelectSingleNode(path).ToJson.
  2. Uporabite bralno metodo, ki ustreza podatkom: GetDouble ali GetDecimal za decimalna števila, GetString za datume v drugih oblikah (te nato pretvorite s CDate po lastnih pravilih).
  3. Za vrednosti, ki so lahko null, podajte nadomestno vrednost, na primer GetLong("$.qty", 0).
sl/wiki/msaccess/json/troubleshooting/getter-type-mismatch.txt · Zuletzt geändert: von Wolfgang van der Stille