@Provider public class GensonProvider implements ContextResolver<Genson> { private final Genson genson = new GensonBuilder().useDateFormat(yourDateFormat).create(); @Override public Genson getContext(Class<?> type) { return genson; } }
Genson genson = new GensonBuilder() .useFields(true, VisibilityFilter.PRIVATE) .create();
Genson genson = new GensonBuilder() .useConstructorWithArguments(true) .create();
Genson genson = new GensonBuilder().useRuntimeType(true).create();
new GensonBuilder().useClassMetadataWithStaticType(false).create();
@Provider public class GensonProvider implements ContextResolver<Genson> { private final Genson genson = new GensonBuilder() .useDateAsTimestamp(false) .useDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")) .create(); @Override public Genson getContext(Class<?> type) { return genson; } }
Genson genson = new GensonBuilder() .addAlias("ComplexCondition", ComplexCondition.class) .addAlias("SimpleCondition", SimpleCondition.class) .create(); { "@class": "ComplexCondition", "left": { "@class": "SimpleCondition", "feature":"locality", "op":"==", "value":"Chino", "primitive":9 }, "joint":"and", "right": { "@class": "SimpleCondition", "feature":"ch4", "op":">=", "value":"1.5", "primitive":3 } }
val builder = new GensonBuilder().withClassLoader(Array.getClassLoader) val genson = new ScalaGenson(builder.withBundle(ScalaBundle()).create()) genson.fromJson...
Genson genson = new GensonBuilder() .useIndentation(true) .useConstructorWithArguments(true) .useRuntimeType(true) .addAlias("RainState", RainState.class) .useClassMetadata(true) .withConverterFactory(new ChainedFactory() { @Override protected Converter<?> create(Type type, Genson genson, Converter<?> nextConverter) { if (Wrapper.toAnnotatedElement(nextConverter).isAnnotationPresent(HandleClassMetadata.class)) { return new LiteralAsObjectConverter(nextConverter); } else { return nextConverter; } } }).create();
public class MyApplication extends ResourceConfig { public MyApplication() { Genson genson = new GensonBuilder() .withBundle(new JAXBBundle()) .useConstructorWithArguments(true) .setSkipNull(true) .create(); register(new GensonJaxRSFeature().use(genson)); } }
// you can also precise that you want to rename only the properties from User class Genson genson = new GensonBuilder() .rename("username", "userId") .rename("password", "pwd") .create(); User user = genson.deserialize(json, User.class);
Genson genson = new GensonBuilder().useByteAsInt(true).create(); genson.serialize(yourObject, theOutputStream);
Genson genson = new GensonBuilder().useConstructorWithArguments(true).create(); // and then register it with jersey new ResourceConfig().register(new GensonJaxRSFeature().use(genson));
Genson genson = new GensonBuilder().usePermissiveParsing(true).create(); ObjectReader reader = genson.createReader(inputStream); Iterator<SomeObject> iterator = genson.deserializeValues(reader, GenericType.of(SomeObject.class));
public GensonJsonUtils() { super(); this.genson = new GensonBuilder().withBundle(new BaseGensonBundle()).create(); }
public GensonMessageConverter() { this(new GensonBuilder().setHtmlSafe(true).setSkipNull(true).useBeanViews(true).create()); }
public GensonMessageConverter() { this(new GensonBuilder().setHtmlSafe(true).setSkipNull(true).useBeanViews(true).create()); }
@Override public Genson getContext(Class<?> type) { return new GensonBuilder() // copy from com.owlike.genson.ext.jaxrs.GensonJaxRSFeature._defaultGenson .withBundle(new JAXBBundle()) .useConstructorWithArguments(true) .useDateAsTimestamp(false) // java8 time support .withContextualFactory(new Java8TimeContextualFactory()) .create(); } }
@Test public void parseJson() { Genson genson = new GensonBuilder().useMethods(true).create(); try(InputStream is = loader.getResourceAsStream("sample-response.json")) { List<Translation> list = genson.deserialize(is, new GenericType<List<Translation>>() {}); assertThat(list).hasSize(1); Translation trans = list.get(0); assertThat(trans.isSuccessful()) .isTrue(); assertThat(trans.getText()) .matches("取得"); assertThat(trans.getWords()).hasSize(1); List<Word> words = trans.getWords(); Word word = words.get(0); assertThat(word.isSuccessful()).isTrue(); assertThat(word.getText()).matches("取得"); assertThat(word.getTranslatedText()).matches("acquisition"); assertThat(word.getCandidates()) .contains(new Candidates("acquisition"), new Candidates("get"), new Candidates("acquired"), new Candidates("fetch")); } catch (IOException e) { e.printStackTrace(); } } }
public List<Translation> translate(String text) { URL url = new HttpUrl.Builder() .scheme("https") .host("api.codic.jp") .addPathSegment("v1") .addPathSegment("engine") .addPathSegment("translate.json") .addQueryParameter("text", text) .build() .url(); Request request = new Builder() .url(url) .addHeader(CODIC_HTTP_AUTH_HEADER, "Bearer " + accessToken) .get() .build(); try { Response response = new OkHttpClient().newCall(request).execute(); int code = response.code(); if (code != 200) { throw new CodicException("Exception in calling API[" + API_ENTRY_URL + "] with status " + code + "."); } Genson genson = new GensonBuilder().useMethods(true).create(); String string = response.body().string(); return genson.deserialize(string, new GenericType<List<Translation>>() {}); } catch (IOException e) { throw new CodicException("Exception in calling API[" + API_ENTRY_URL + "].", e); } } }