Хотя выше есть огромный пул решений, никто не упомянул com.koushikdutta.ion
: https://github.com/koush/ion
Он также асинхронный и очень простой для использования:
Ion.with(context)
.load("http://example.com/thing.json")
.asJsonObject()
.setCallback(new FutureCallback() {
@Override
public void onCompleted(Exception e, JsonObject result) {
// do stuff with the result or error
}
});
Учитывая, что код компилируется с использованием как clang версии 3.5 (trunk 202594), так и, что более важно, с gcc версии 4.9.0 20140302 (экспериментальный) (GCC), как с -Wall
, я бы сказал, что это была проблема с более ранние версии gcc.
Я ищу gcc bugreport в http://gcc.gnu.org/bugzilla/ , чтобы подтвердить это.