2012-03-26 20 views
2

Ich verwende Datenbindungsoption, um die JSON-Zeichenfolge in POJO zu konvertieren. Wenn ich einen falschen Wert für ein Feld übergebe, gibt der Jackson-Parser den Feldnamen im Fehler nicht an.Feldname in Jackson-Parser Fehlermeldung

Hier ist ein Beispiel, ich habe ein Feld mit dem Namen taxAmt, die vom Typ Double in meinem JSON ist, wenn ich einen ganzzahligen Wert im Feld taxAmt übergeben alles funktioniert gut. Aber wenn ich einen nicht ganzzahligen Wert in taxAmt wie taxAmt:abcd übergebe.

Parser wirft eine Fehlermeldung,

org.codehaus.jackson.JsonParseException: unerwartetes Zeichen ('a' (Code 97)): erwarteter ein gültiger Wert (Zahl, String, Array, ein Objekt, ' true‘,‚false‘oder‚null‘)

gibt es trotzdem, den Parser zu haben, den Feldnamen in der Fehlermeldung anhängen, so dass es leicht sein wird für den Anrufer, das Feld zu identifizieren, die das hat falscher Wert.

Antwort

1

Problem ist nicht mit der Datenbindung (was auf eine Eigenschaft hinweisen würde, die ein Problem hat), sondern eher, dass Sie doppelte Anführungszeichen um String-Wert zu vergessen scheinen. JSON erfordert, dass Sie Strings zitieren, sodass der Parser an der Stelle, an der er das Problem bemerkt, eine Ausnahme auslöst.

Es könnte jedoch sinnvoll sein, die Fehlermeldung zu verbessern, da der Parser den Pfad zu diesem Punkt kennt ... hmmh.

+0

taxAmt ist eine ganze Zahl, deshalb habe ich sie nicht mit Doppelzitat umschlossen. Wie Sie erwähnt haben, habe ich versucht, sie mit Doppelzitat wie "taxAmt" zu umhüllen: "adfasf" in diesem Fall hat es mich auf den richtigen Namen in der Fehlermeldung hingewiesen. Ist es möglich, dies ohne das doppelte Zitat zu erreichen? – Pearl