static GenericHttpMessageConverter<Object> getJsonMessageConverter() { if (jackson2Present) { return new MappingJackson2HttpMessageConverter(); } else if (gsonPresent) { return new GsonHttpMessageConverter(); } else if (jsonbPresent) { return new JsonbHttpMessageConverter(); } return null; } }
@Override protected Object readInternal(Type resolvedType, Reader reader) throws Exception { return getGson().fromJson(reader, resolvedType); }
@Bean public HttpMessageConverters messageConverters() { GsonHttpMessageConverter gsonHttpMessageConverter = new GsonHttpMessageConverter(); gsonHttpMessageConverter.setGson( new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").create()); final List<HttpMessageConverter<?>> converters = Lists.newArrayList( new ByteArrayHttpMessageConverter(), new StringHttpMessageConverter(), new AllEncompassingFormHttpMessageConverter(), gsonHttpMessageConverter); return new HttpMessageConverters() { @Override public List<HttpMessageConverter<?>> getConverters() { return converters; } }; } }
String json = "{\"param\":3}"; GsonHttpMessageConverter converter = new GsonHttpMessageConverter(); converter.setSupportedMediaTypes(new MediaType("application", "octet-stream", Charset.forName("UTF-8"))); restClient.getRestTemplate().getMessageConverters().add(converter); Response res = restClient.send(json);
/** * Construct a new {@code GsonHttpMessageConverter}. * * @param gson a customized {@link Gson#Gson() Gson} */ public GsonHttpMessageConverter(Gson gson) { super(new MediaType("application", "json", DEFAULT_CHARSET)); setGson(gson); }
@Override public boolean canWrite(Class<?> clazz, MediaType mediaType) { return canWrite(mediaType); }
@Override public boolean canRead(Class<?> clazz, MediaType mediaType) { return canRead(mediaType); }
this.messageConverters.add(new GsonHttpMessageConverter());
@Override protected void writeInternal(Object o, @Nullable Type type, Writer writer) throws Exception { // In Gson, toJson with a type argument will exclusively use that given type, // ignoring the actual type of the object... which might be more specific, // e.g. a subclass of the specified type which includes additional fields. // As a consequence, we're only passing in parameterized type declarations // which might contain extra generics that the object instance doesn't retain. if (type instanceof ParameterizedType) { getGson().toJson(o, type, writer); } else { getGson().toJson(o, writer); } }
this.messageConverters.add(new GsonHttpMessageConverter());
@Override protected Object readInternal(Type resolvedType, Reader reader) throws Exception { return getGson().fromJson(reader, resolvedType); }
messageConverters.add(new GsonHttpMessageConverter());
@Override protected void writeInternal(Object o, @Nullable Type type, Writer writer) throws Exception { // In Gson, toJson with a type argument will exclusively use that given type, // ignoring the actual type of the object... which might be more specific, // e.g. a subclass of the specified type which includes additional fields. // As a consequence, we're only passing in parameterized type declarations // which might contain extra generics that the object instance doesn't retain. if (type instanceof ParameterizedType) { getGson().toJson(o, type, writer); } else { getGson().toJson(o, writer); } }
public AllEncompassingFormHttpMessageConverter() { try { addPartConverter(new SourceHttpMessageConverter<>()); } catch (Error err) { // Ignore when no TransformerFactory implementation is available } if (jaxb2Present && !jackson2XmlPresent) { addPartConverter(new Jaxb2RootElementHttpMessageConverter()); } if (jackson2Present) { addPartConverter(new MappingJackson2HttpMessageConverter()); } else if (gsonPresent) { addPartConverter(new GsonHttpMessageConverter()); } else if (jsonbPresent) { addPartConverter(new JsonbHttpMessageConverter()); } if (jackson2XmlPresent) { addPartConverter(new MappingJackson2XmlHttpMessageConverter()); } if (jackson2SmilePresent) { addPartConverter(new MappingJackson2SmileHttpMessageConverter()); } }
@Override protected Object readInternal(Type resolvedType, Reader reader) throws Exception { return getGson().fromJson(reader, resolvedType); }
messageConverters.add(new GsonHttpMessageConverter());
@Override protected Object readInternal(Type resolvedType, Reader reader) throws Exception { return getGson().fromJson(reader, resolvedType); }