gpt4 book ai didi

android - 预期为 BEGIN_ARRAY 但在第 1 行第 2 列路径 $ - Retrofit 2 Android 中为 BEGIN_OBJECT

转载 作者:搜寻专家 更新时间:2023-11-01 08:18:18 25 4
gpt4 key购买 nike

我收到了这个改造2

ERROR: java.lang.illegalstateexception: expected begin_array but was begin_object

我不知道怎么解决

我在这里包含了我的完整代码

但我的错误是

E/ddd: onFailure: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $

怎么了?

这是我的JSON

 {"fom_combine":[{"mTitle":"Talaash","mYear":"2012"},{"mTitle":"Race 2","mYear":"2013"},{"mTitle":"October","mYear":"2018"},{"mTitle":"MS Dhoni: The Untold Story","mYear":"2016"},{"mTitle":"Phantom","mYear":"2015"},{"mTitle":"Baby","mYear":"2015"}]}

Search_Movie.class

public class Search_Movie {
@SerializedName("mTitle")
@Expose
private String mTitle;

@SerializedName("mYear")
@Expose
private long mYear;

public Search_Movie(String mTitle, long mYear) {
this.mTitle = mTitle;
this.mYear = mYear;
}

public String getmTitle() {
return mTitle;
}

public long getmYear() {
return mYear;
}}

ApiClient.java

public class ApiClient {
public static final String BASE_URL = "https://example.com/search/";
public static Retrofit retrofit;

public static Retrofit getApiClient(){
if (retrofit==null){
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}}

API接口(interface)

public interface ApiInterface {
@GET("fom_combine.php")
Call<List<Search_Movie>> getContact(
@Query("name") String keyword
);}

Search_Activity.java

....
private RecyclerView recyclerView;
private RecyclerView.LayoutManager layoutManager;
private List<Search_Movie> contacts;
private Search_Adapter adapter;
private ApiInterface apiInterface;
ProgressBar progressBar;

....

progressBar = findViewById(R.id.prograss);
recyclerView = findViewById(R.id.recyclerView);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
fetchContact( "");

.....
public void fetchContact( String key){

apiInterface = ApiClient.getApiClient().create(ApiInterface.class);

Call<List<Search_Movie>> call = apiInterface.getContact(key);
call.enqueue(new Callback<List<Search_Movie>>() {
@Override
public void onResponse(Call<List<Search_Movie>> call, Response<List<Search_Movie>> response) {
progressBar.setVisibility(View.GONE);
contacts = response.body();
adapter = new Search_Adapter(contacts, Search_Activity.this);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}

@Override
public void onFailure(Call<List<Search_Movie>> call, Throwable t) {
progressBar.setVisibility(View.GONE);
Toast.makeText(Search_Activity.this, "Error\n"+t.toString(), Toast.LENGTH_LONG).show();
}
});
}

最佳答案

你需要创建另一个类

public class FomCombine {
@SerializedName("fom_combine")
@Expose
private List<Search_Movie> fom_combine;



public FomCombine(List<Search_Movie> fom_combine) {this.fom_combine = fom_combine;}

public List<Search_Movie> getfom_combine() {
return fom_combine;
}

}

然后改变 Call<List<Search_Movie>> call = apiInterface.getContact(key);

Call<FomCombine> call = apiInterface.getContact(key);

一样
@GET("fom_combine.php")
Call<List<Search_Movie>> getContact(
@Query("name") String keyword
);}

@GET("fom_combine.php")
Call<FomCombine> getContact(
@Query("name") String keyword
);}

然后

Call<FomCombine> call = apiInterface.getContact(key);
call.enqueue(new Callback<FomCombine>() {
@Override
public void onResponse(Call<FomCombine> call, Response<FomCombine> response) {
progressBar.setVisibility(View.GONE);
contacts = response.body().getfom_combine();
adapter = new Search_Adapter(contacts, Search_Activity.this);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}

@Override
public void onFailure(Call<FomCombine> call, Throwable t) {
progressBar.setVisibility(View.GONE);
Toast.makeText(Search_Activity.this, "Error\n"+t.toString(), Toast.LENGTH_LONG).show();
}
});

关于android - 预期为 BEGIN_ARRAY 但在第 1 行第 2 列路径 $ - Retrofit 2 Android 中为 BEGIN_OBJECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55490926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com