Hallo!
Ich rufe einen json String über eine URL ab und erzeuge eine Klasse:
Bei der Zeile:
api = new Gson().fromJson(response.getBodyText(), Api.class);
wird die Klasse geschrieben. Aber leider sind dort die Umlaute nicht korrekt.
Wie kann ich das gson auf UTF8 umstellen?
Tippe ich die URL in Chrom ein, sehe ich im browser das korrekte json mit Umlauten.
Aber nicht wenn ich mit gson 2.5 das ganze mache
Ich rufe einen json String über eine URL ab und erzeuge eine Klasse:
Java:
@Override
public void onStart(boolean value) {
if (value) {
try {
target = new HttpHost(getPropertyIpadresse());
client = HttpAsyncClients.custom().setIOReactorConfig(ioReactorConfig).build();
client.start();
execute(true, "/api/status");
} catch (Exception e) {
e.printStackTrace();
}
} else {
client.close(CloseMode.IMMEDIATE);
}
}
public void execute(boolean initate, String url) {
executorService.execute(new Runnable() {
@Override
public void run() {
final SimpleHttpRequest request = SimpleRequestBuilder.get().setHttpHost(target)
.addHeader("Accept", "application/json").addHeader("Accept-Charset", "utf-8").setPath(url)
.build();
final Future<SimpleHttpResponse> future = client.execute(SimpleRequestProducer.create(request),
SimpleResponseConsumer.create(), new FutureCallback<SimpleHttpResponse>() {
@Override
public void completed(final SimpleHttpResponse response) {
api = new Gson().fromJson(response.getBodyText(), Api.class);
updateData();
}
@Override
public void failed(final Exception ex) {
ex.printStackTrace();
restartConnect();
}
@Override
public void cancelled() {
restartConnect();
}
});
try {
future.get();
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
});
}
Bei der Zeile:
api = new Gson().fromJson(response.getBodyText(), Api.class);
wird die Klasse geschrieben. Aber leider sind dort die Umlaute nicht korrekt.
Wie kann ich das gson auf UTF8 umstellen?
Tippe ich die URL in Chrom ein, sehe ich im browser das korrekte json mit Umlauten.
Aber nicht wenn ich mit gson 2.5 das ganze mache