private static JsonSerializer createSerializer() { JsonSerializerFactory factory = new JsonSerializerFactory() .addTypeSerializer(HashCode.class, new HashCodeSerializer() ); return factory.create(); }
public static String toJson(Object obj) { JsonSerializerFactory jsonSerializerFactory = new JsonSerializerFactory() .addTypeSerializer(GStringImpl.class, new AbstractCustomObjectSerializer(GStringImpl.class) { @Override public void serializeObject(JsonSerializerInternal serializer, Object instance, CharBuf builder) { builder.addString(((GString) instance).toString()); } }); JsonSerializer serializer = jsonSerializerFactory.create(); return serializer.serialize(obj).toString(); } }
@Test public void test() { JsonSerializer serializer = new JsonSerializerFactory() .addTypeSerializer(AbstractMap.class, new MapSerializer()).create(); Map<String, String> map = map("Aaaaa", "aaaa", "Bbbbb", "bbbb", "Ccccc", "cccc"); Predicate<String> startsWithB = new Predicate<String>() { @Override public boolean apply(String s) { return s.charAt(0) == 'B'; } }; Map<String, String> filtered = Maps.filterKeys(map, startsWithB); String result = serializer.serialize(filtered).toString(); ok = result.equals("{\"Bbbbb\":\"bbbb\"}") || die(result); }