Java 无pojo的改造和GSON
我正在应用程序中使用黑客新闻api。我想使用gson工厂转换器进行改造调用,但我无法将响应转换为pojo,因为它只是整数列表 下面是api调用和响应Java 无pojo的改造和GSON,java,android,gson,retrofit,jsonschema2pojo,Java,Android,Gson,Retrofit,Jsonschema2pojo,我正在应用程序中使用黑客新闻api。我想使用gson工厂转换器进行改造调用,但我无法将响应转换为pojo,因为它只是整数列表 下面是api调用和响应 PoJo代表普通的旧Java对象,如果您得到一个整数数组作为响应,请在改型接口中对其进行解析 大概是这样的: @GET(... you url) Call<List<Integer>>getHackerNews() @GET(…您的url) CallgetHackerNews() 应为整数数组或列表 首先创建这样的界面
PoJo代表普通的旧Java对象,如果您得到一个整数数组作为响应,请在改型接口中对其进行解析 大概是这样的:
@GET(... you url)
Call<List<Integer>>getHackerNews()
@GET(…您的url)
CallgetHackerNews()
应为整数数组或列表 首先创建这样的界面….
public interface GitHubService {
@GET("v0/topstories.json")
Call<List<Long>> listRepos();
}
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://hacker-news.firebaseio.com/").addConverterFactory(GsonConverterFactory.create())
.build();
GitHubService api = retrofit.create(GitHubService.class);
api.listRepos().enqueue(new Callback<List<Long>>() {
@Override
public void onResponse(Call<List<Long>> call, Response<List<Long>> response) {
if (response.isSuccessful()) {
// do operations here
String number = "";
for (int i = 0; i < response.body().size(); i++)
number += response.body().get(i) + ", ";
((TextView) findViewById(R.id.number)).setText(number);
} else
Toast.makeText(MainActivity.this, response.errorBody().toString(), Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(Call<List<Long>> call, Throwable t) {
Toast.makeText(MainActivity.this, t.getMessage().toString(), Toast.LENGTH_LONG).show();
}
});
> compile 'com.squareup.retrofit2:retrofit:2.3.0'
> compile 'com.squareup.retrofit2:converter-gson:2.+'
请确保将响应包装在ResponseBody中,如下所示:
@GET(your url param)
Call<ResponseBody>getNews();
您面临哪些问题??无法为GSO创建pojo?您不想创建任何pojo。直接使用
ArrayList
;好用arraylist
@GET(your url param)
Call<ResponseBody>getNews();
JSONArray jsonArray=new JSONArray(ResponseBody.body().String())