diff --git a/json-view/src/main/java/com/monitorjbl/json/JsonViewSerializer.java b/json-view/src/main/java/com/monitorjbl/json/JsonViewSerializer.java index 8d7339f..09bb5e6 100644 --- a/json-view/src/main/java/com/monitorjbl/json/JsonViewSerializer.java +++ b/json-view/src/main/java/com/monitorjbl/json/JsonViewSerializer.java @@ -17,6 +17,7 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; +import java.math.BigDecimal; import java.net.URI; import java.net.URL; import java.util.ArrayList; @@ -91,6 +92,8 @@ boolean writePrimitive(Object obj) throws IOException { jgen.writeBoolean((Boolean) obj); } else if(obj == null) { jgen.writeNull(); + } else if(obj instanceof BigDecimal) { + jgen.writeNumber((BigDecimal) obj); } else { return false; } diff --git a/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerPerformance.java b/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerPerformance.java index a295ab8..4e29a69 100644 --- a/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerPerformance.java +++ b/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerPerformance.java @@ -42,7 +42,7 @@ public void sutRandomSingleObjectPerformance() throws Exception { } } - System.out.println(times / (REPETITIONS - 100)); + //System.out.println(times / (REPETITIONS - 100)); } @Test @@ -60,7 +60,7 @@ public void compareRandomSingleObjectPerformance() throws Exception { } } - System.out.println(times / (REPETITIONS - 100)); + //System.out.println(times / (REPETITIONS - 100)); } TestObject testObject() { diff --git a/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerTest.java b/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerTest.java index dd1c20c..a2556cd 100644 --- a/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerTest.java +++ b/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerTest.java @@ -20,6 +20,7 @@ import org.junit.Test; import java.io.IOException; +import java.math.BigDecimal; import java.net.URI; import java.net.URL; import java.text.SimpleDateFormat; @@ -563,7 +564,6 @@ public void testWriteNullValues_disabledGlobally() throws Exception { String serialized = sut.writeValueAsString(JsonView.with(ref)); Map obj = sut.readValue(serialized, HashMap.class); - System.out.println(serialized); assertFalse(obj.containsKey("str2")); } @@ -686,6 +686,19 @@ public void testBackReferenceSupport() throws Exception { String serialized = sut.writeValueAsString(JsonView.with(forward)); Map> obj = sut.readValue(serialized, HashMap.class); - System.out.println(obj); + assertNotNull(obj.get("parent")); + assertEquals("back", obj.get("parent").get("id")); + } + + @Test + public void testBigDecimalSerialization() throws Exception { + TestObject ref = new TestObject(); + ref.setBigDecimal(new BigDecimal(Math.PI)); + + String serialized = sut.writeValueAsString(JsonView.with(ref)); + Map obj = sut.readValue(serialized, HashMap.class); + + assertNotNull(obj.get("bigDecimal")); + assertEquals(3.141592653589793, obj.get("bigDecimal")); } } diff --git a/json-view/src/test/java/com/monitorjbl/json/model/TestObject.java b/json-view/src/test/java/com/monitorjbl/json/model/TestObject.java index cebf5ef..e0e1079 100644 --- a/json-view/src/test/java/com/monitorjbl/json/model/TestObject.java +++ b/json-view/src/test/java/com/monitorjbl/json/model/TestObject.java @@ -3,6 +3,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import java.math.BigDecimal; import java.net.URI; import java.net.URL; import java.util.Date; @@ -39,6 +40,7 @@ public enum TestEnum {VALUE_A, VALUE_B} private URL url; private URI uri; private Class cls; + private BigDecimal bigDecimal; public String getStr1() { return str1; @@ -207,4 +209,12 @@ public TestSubobject getSubWithIgnores() { public void setSubWithIgnores(TestSubobject subWithIgnores) { this.subWithIgnores = subWithIgnores; } + + public BigDecimal getBigDecimal() { + return bigDecimal; + } + + public void setBigDecimal(BigDecimal bigDecimal) { + this.bigDecimal = bigDecimal; + } } diff --git a/spring-json-view/src/test/java/com/monitorjbl/json/ConfigTest.java b/spring-json-view/src/test/java/com/monitorjbl/json/ConfigTest.java index 3895ca9..2705779 100644 --- a/spring-json-view/src/test/java/com/monitorjbl/json/ConfigTest.java +++ b/spring-json-view/src/test/java/com/monitorjbl/json/ConfigTest.java @@ -121,7 +121,6 @@ public void testNoninterference() throws Exception { String ret = Request.Post("http://localhost:8080/bean").bodyString( "{\"date\":\"1433214360187\",\"str1\":\"test\",\"notReal\":\"asdfas\"}", ContentType.APPLICATION_JSON) .execute().returnContent().asString(); - System.out.println(ret); assertEquals(5, ret.split("\n").length); } diff --git a/spring-json-view/src/test/java/com/monitorjbl/json/server/XmlConfigServer.java b/spring-json-view/src/test/java/com/monitorjbl/json/server/XmlConfigServer.java index 6e9f1d0..e1a6276 100644 --- a/spring-json-view/src/test/java/com/monitorjbl/json/server/XmlConfigServer.java +++ b/spring-json-view/src/test/java/com/monitorjbl/json/server/XmlConfigServer.java @@ -25,7 +25,7 @@ public void run() { Server server = new Server(port); final XmlWebApplicationContext xmlBasedContext = new XmlWebApplicationContext(); - System.out.println(xmlBasedContext.getEnvironment().getClass()); + //System.out.println(xmlBasedContext.getEnvironment().getClass()); xmlBasedContext.setConfigLocation("classpath:context.xml"); final ServletHolder servletHolder = new ServletHolder(new DispatcherServlet(xmlBasedContext));