Skip to content

Commit

Permalink
Adding support for UUIDs (#39)
Browse files Browse the repository at this point in the history
  • Loading branch information
Taylor Jones committed Dec 16, 2016
1 parent 9fe2a23 commit 8cf64fe
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 0 deletions.
20 changes: 20 additions & 0 deletions json-view/pom.xml
Expand Up @@ -76,6 +76,26 @@
</build>

<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<excludes>
<exclude>JsonViewSerializerPerformanceTest.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>release</id>
<activation>
Expand Down
Expand Up @@ -30,6 +30,7 @@
import java.util.Map;
import java.util.Set;
import java.util.Stack;
import java.util.UUID;
import java.util.regex.Pattern;

public class JsonViewSerializer extends JsonSerializer<JsonView> {
Expand Down Expand Up @@ -174,6 +175,8 @@ boolean writeSpecial(Object obj) throws IOException {
jgen.writeString(obj.toString());
} else if(obj instanceof URI) {
jgen.writeString(obj.toString());
} else if (obj instanceof UUID){
jgen.writeString(obj.toString());
} else if(obj instanceof Class) {
jgen.writeString(((Class) obj).getCanonicalName());
} else {
Expand Down
Expand Up @@ -108,4 +108,5 @@ String divide(long numerator, long denominator) {
interface UncheckedRunnable {
public void run() throws Exception;
}

}
Expand Up @@ -36,6 +36,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import static com.monitorjbl.json.Match.match;
import static java.util.Arrays.asList;
Expand Down Expand Up @@ -813,4 +814,16 @@ public void testDeepNestedObjects() throws Exception {
assertEquals(subobject.getVal(), subMap.get("val"));
assertNull(subMap.get("otherVal"));
}

@Test
public void testUUIDs() throws Exception {
TestObject ref = new TestObject();
ref.setUuid(UUID.randomUUID());

String serialized = sut.writeValueAsString(JsonView.with(ref));
Map<String, Object> obj = sut.readValue(serialized, HashMap.class);

assertNotNull(obj.get("uuid"));
assertEquals(ref.getUuid().toString(), obj.get("uuid"));
}
}
10 changes: 10 additions & 0 deletions json-view/src/test/java/com/monitorjbl/json/model/TestObject.java
Expand Up @@ -12,6 +12,7 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;

@JsonIgnoreProperties({"ignoredIndirect"})
public class TestObject implements TestInterface {
Expand Down Expand Up @@ -52,6 +53,7 @@ public enum TestEnum {VALUE_A, VALUE_B}
private String jsonProp;
@JsonProperty
private String jsonPropNoValue;
private UUID uuid;

public String getStr1() {
return str1;
Expand Down Expand Up @@ -268,4 +270,12 @@ public String getJsonPropNoValue() {
public void setJsonPropNoValue(String jsonPropNoValue) {
this.jsonPropNoValue = jsonPropNoValue;
}

public UUID getUuid() {
return uuid;
}

public void setUuid(UUID uuid) {
this.uuid = uuid;
}
}

0 comments on commit 8cf64fe

Please sign in to comment.