`SerializationFeature.WRITE_BIGDECIMAL_AS_PLAIN` not taken into account when serializing `BigDecimal` as String
See original GitHub issueThe following test should convert a BigDecimal
number to "3.033"
string in json. But in fact it only converts it to double.
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.junit.Test;
import java.math.BigDecimal;
import static org.junit.Assert.assertEquals;
public class JacksonTest {
public class MyDto {
private BigDecimal number;
public BigDecimal getNumber() {
return number;
}
public void setNumber(BigDecimal number) {
this.number = number;
}
}
@Test
public void testBigDecimalSerialization() throws Exception {
ObjectMapper mapper = new ObjectMapper().enable(SerializationFeature.WRITE_BIGDECIMAL_AS_PLAIN);
MyDto dto = new MyDto();
dto.number = new BigDecimal("3.033");
String json = mapper.writeValueAsString(dto);
assertEquals("{\"number\":\"3.033\"}", json);
}
}
Result:
org.junit.ComparisonFailure:
Expected :{"number":"3.033"}
Actual :{"number":3.033}
jackson-databind-2.9.8
Issue Analytics
- State:
- Created 4 years ago
- Comments:10 (6 by maintainers)
Top Results From Across the Web
How to format BigDecimal as "plain text" when serializing a ...
Hi ! In Jackson, there is a settings to output a BigDecimal as a plain string instead of the scientific annotation : SerializationFeature....
Read more >Java to Jackson JSON serialization: Money fields
In the above example, I used the to string serializer to serialize BigIntegers (since javascript can not handle such numeric values).
Read more >SerializationFeature (jackson-databind 2.2.0 API) - FasterXML
Feature that determines whether BigDecimal entries are serialized using BigDecimal.toPlainString() to prevent values to be written using scientific notation ...
Read more >The Configure() Method in Jackson in JSON - DZone Java
In this tutorial, learn how to use the configure() method in Jackson in JSON. ... Will write BigDecimal as plain text using the...
Read more >DeserializationFeature (jackson-databind 2.12.3 API)
BigDecimal `) is allowed or not. ACCEPT_SINGLE_VALUE_AS_ARRAY. Feature that determines whether it is acceptable to coerce non-array (in JSON) values to work with ......
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Actually, I think it already works; fixed with #2230, to be included in 2.10 (and is included in
2.10.0.pr1
already).@sddakoty Almost, but you can actually remove that if check there: serialize() method is never called with
null
value (null handling is separate and caller must handle it).And yes I hope I find time to implement this in near future.