Wie kann ich erzwingen Jackson zum schreiben von zahlen als Zeichenketten beim serialisieren meiner Objekte
Ich habe eine id, die ist ziemlich groß auf einer meiner java-Objekte. Wenn es jackson konvertiert es zu JSON und sendet Sie nach unten als Zahl (z.B. {"id":1000110040000000001}), aber sobald es wird ein javascript-Objekt, die id wird geändert, um 1000110040000000000. Ich lese über dieses Thema hier
Es funktioniert gut, wenn die id kleiner ist. Mein Erster Gedanke ist, nur Kraft Jackson zu wandeln Sie alle zahlen in strings, aber ich bin offen für andere Optionen, wie gut. Wenn möglich, würde ich es vorziehen, nicht zu Jackson hinzufügen von Anmerkungen zu meiner java-Objekte.
- Relevant: stackoverflow.com/a/12046979/2129835
- Vielen Dank für den Hinweis. Offenbar in der version 2.1.3, die Sie tun können, etwas so: @JsonSerialize(mit = ToStringSerializer.class). Es wäre noch schön, wenn ich konnte nur einige Allgemeine Einstellung in der Objekt-mapper, aber dies tun, wenn dies nicht möglich ist.
- Möglich, Duplikat der Jackson JSON benutzerdefinierte Serialisierung für bestimmte Felder
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jackson-databind (zumindest 2.1.3) bietet Besondere ToStringSerializer. Das hat es für mich.
com.fasterxml.jackson.core:jackson-core:2.5.4
bietetJsonGenerator.Funktion.WRITE_NUMBERS_AS_STRINGS für
ObjectMapper
Konfiguration.Gehören die Abhängigkeit:
spring.jackson.generator.write-numbers-as-strings=true