Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
Android 改型-获取原始非JSON数组_Android_Json_Http_Retrofit - Fatal编程技术网

Android 改型-获取原始非JSON数组

Android 改型-获取原始非JSON数组,android,json,http,retrofit,Android,Json,Http,Retrofit,我第一次使用Reformation2,但在获取非JSON格式的简单数组时遇到了一个问题 错误:java.lang.IllegalStateException:应为BEGIN_对象,但在第1行第3列路径$[0]处为字符串 这意味着它不是JSON对象,因为它不是以{ 我尝试添加ScalarsConverter,但它似乎不起作用 Api: 接口: public interface Retro_coins { @GET("api/v1/coins") Call<List<Co

我第一次使用Reformation2,但在获取非JSON格式的简单数组时遇到了一个问题

错误:java.lang.IllegalStateException:应为BEGIN_对象,但在第1行第3列路径$[0]处为字符串

这意味着它不是JSON对象,因为它不是以{

我尝试添加ScalarsConverter,但它似乎不起作用

Api:

接口:

public interface Retro_coins {
    @GET("api/v1/coins")
    Call<List<Coinlist>> getCoinlist();
}
改装初始化和呼叫:

String API_BASE_URL = "https://chasing-coins.com/";

        OkHttpClient.Builder httpClient = new OkHttpClient.Builder();

        Retrofit.Builder builder = new Retrofit.Builder()
                        .baseUrl(API_BASE_URL)
                        .addConverterFactory(GsonConverterFactory.create())
                        .addConverterFactory(ScalarsConverterFactory.create())
                ;
        Retrofit retrofit = builder.client(httpClient.build()).build();
        Retro_coins client =  retrofit.create(Retro_coins.class);



// Fetch list
        Call<List<Coinlist>> call =
                client.getCoinlist();

// Execute the call asynchronously. Get a positive or negative callback.
        call.enqueue(new Callback<List<Coinlist>>() {
            @Override
            public void onResponse(Call<List<Coinlist>> call, Response<List<Coinlist>> response) {
                // The network call was a success and we got a response
                Log.w("Yes", response.toString());
            }

            @Override
            public void onFailure(Call<List<Coinlist>> call, Throwable t) {
                Log.w("no", t.toString());

            }
        });
谢谢!

当您使用private List coinlist;时,Gson希望该对象

{  
   "coinlist":"[]"
}
你所提供的只是

["String","String","String"]
此外,当您使用Call时,您希望数据

[  
   {  
      "coinlist":"[]"
   }
]

只需将您的调用从一个调用更改为另一个调用。这将解决您的问题。如果需要更多说明,请告诉我您的请求返回字符串。因此,您需要将响应更改为字符串或需要将请求调用更改为字符串。

这是因为您的对象错误。如果您不使用JSON您不需要addConverterFactoryGsonConverterFactory.create使用您希望的格式伟大的答案和解释!
[  
   {  
      "coinlist":"[]"
   }
]