Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无pojo的改造和GSON_Java_Android_Gson_Retrofit_Jsonschema2pojo - Fatal编程技术网

Java 无pojo的改造和GSON

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() 应为整数数组或列表 首先创建这样的界面

我正在应用程序中使用黑客新闻api。我想使用gson工厂转换器进行改造调用,但我无法将响应转换为pojo,因为它只是整数列表

下面是api调用和响应


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())