gpt4 book ai didi

java - 预期为 BEGIN_ARRAY,但在第 1 行第 1 列路径 $ android Retrofit gson 处为 STRING

转载 作者:行者123 更新时间:2023-12-01 09:20:02 25 4
gpt4 key购买 nike

我正在使用改造进行开发,但我遇到了问题。我想从我的服务器获取结果。

这是我的 php 脚本的结果 json:

[{"rubrique_id":"1","rubrique_lib":"syst\u00e8me "},
{"rubrique_id":"2","rubrique_lib":"s\u00e9curit\u00e9"},
{"rubrique_id":"3","rubrique_lib":"information"}]

这是我的 java 模型类:

public class Bureau {

@SerializedName("rubrique_id")
private String rubrique_id;

@SerializedName("rubrique_lib")
private String rubrique_lib;

public String getRubrique_id() {
return rubrique_id;
}

public void setRubrique_id(String rubrique_id) {
this.rubrique_id = rubrique_id;
}

public String getRubrique_lib() {
return rubrique_lib;
}

public void setRubrique_lib(String rubrique_lib) {
this.rubrique_lib = rubrique_lib;
}


}

这是我的 API 类:

public interface BureauApi {

@GET("/")
Call<List<Bureau>> getBureau();
}

这是我实现改造库的主类:

public class ParametreActivity extends AppCompatActivity {
private Spinner spinner = null;
private static final String BASE_URL = "http://192.168.56.1:80/posteboosterAPI/methodes.php/";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_parametre);
spinner = (Spinner)findViewById(R.id.list_bureau);
final List<String> listBureau = new ArrayList<String>();
listBureau.add("bureau1");
listBureau.add("bureau2");

Gson gson = new GsonBuilder()
.setLenient()
.create();

Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
BureauApi service = retrofit.create(BureauApi.class);

Call<List<Bureau>> call = service.getBureau();
call.enqueue(new Callback<List<Bureau>>() {
@Override
public void onResponse(Call<List<Bureau>> call, Response<List<Bureau>> response) {

if (response.isSuccessful()) {

for (Bureau bureaus :response.body()
) {
Log.i("log", bureaus.getRubrique_lib());
}
}else {

Log.i("log", "l'objet est vide "+response.message());
}
}

@Override
public void onFailure(Call<List<Bureau>> call, Throwable t) {
Log.i("log","erreur survenu dans la requete "+ t.getMessage());

}
});
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,listBureau);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
}
}

控制台给我以下错误:

Expected BEGIN_ARRAY but was STRING at line 1 column 1 path $

最佳答案

试试这个:

public class BureauCollection
{
List<Bureau> bureauList;
}

Call<BureauCollection> getBureau();

更改基本 URL:“http://192.168.56.1:80/”在 API 中:@GET("/posteboosterAPI/methods.php")

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

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