亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

應為 BEGIN_ARRAY 但在第 1 行第 1 列為 STRING RetroFit

應為 BEGIN_ARRAY 但在第 1 行第 1 列為 STRING RetroFit

尚方寶劍之說 2023-03-31 16:44:37
我有一個基本的 lorem ipsum 響應 json url,如下所示: https://baconipsum.com/api/?type= all-meat?s=10&start-with-lorem=10在我的 APIService 接口中,我按如下方式調用它:import io.reactivex.Observable;import retrofit2.http.GET;public interface APIService{    @GET("application/json")    Observable<List<NewsFeed>> getProductData();}我使用響應數據的 NewsFeed 模型:public class NewsFeed{    private String feed;    public void setFeed(String feed)    {        this.feed = feed;    }    public String getFeed()    {        return feed;    }}然后我試圖將該數據從 Url 傳遞到我的 recyclerview 中......        Gson gson = new GsonBuilder()            .setLenient()            .create();    Retrofit retrofit = new Retrofit.Builder()            .baseUrl(url)            .addConverterFactory(GsonConverterFactory.create(gson))            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())            .build();    APIService apiService = retrofit.create(APIService.class);    Observable<List<NewsFeed>> observable = apiService.getProductData().subscribeOn(Schedulers.newThread())            .observeOn(AndroidSchedulers.mainThread());    observable.subscribe(new Observer<List<NewsFeed>>() {        @Override        public void onSubscribe(Disposable d) {        }        @Override        public void onNext(List<NewsFeed> newsFeeds)        {            newsFeedList = new ArrayList<>();            for(int i = 0; i < newsFeeds.size(); i++)            {                NewsFeed newsFeedModel = new NewsFeed();                newsFeedModel.setFeed(newsFeeds.get(i).getFeed());                newsFeedList.add(newsFeedModel);            }            mAdapter = new NewsAdapter(getActivity(), newsFeedList);            recyclerView.setAdapter(mAdapter);            recyclerView.setHasFixedSize(true);            recyclerView.setNestedScrollingEnabled(false);        }    });}我如何讓這個錯誤消失?有沒有特定的方法來處理字符串結果?
查看完整描述

1 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

你需要 APIService 接口是這樣的


import io.reactivex.Observable;

import retrofit2.http.GET;


public interface APIService

{

    @GET("/api/?type=all-meat&paras=10&start-with-lorem=10")

    Observable<List<String>> getProductData();

}

然后在創建Retrofit實例的地方你會這樣寫


Retrofit retrofit = new Retrofit.Builder()

            .baseUrl("https://baconipsum.com/")

            .addConverterFactory(GsonConverterFactory.create(gson))

            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())

            .build();

之后,無論您在哪里使用NewsFeed類,都將其替換為String.


查看完整回答
反對 回復 2023-03-31
  • 1 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號