我正在使用Retrofit和RxJava库并尝试解析此url:
我的代码如下。
APIInterface.java
public interface APIService {
@GET("/bins/tdze5")
Observable<List<Student>> getdata();
}
主要活动。Java语言
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private List<Student> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
getData();
}
private void getData() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.myjson.com")
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
APIService apiService = retrofit.create(APIService.class);
Observable<List<Student>> observable = apiService.getdata().subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
observable.subscribe(new Observer<List<Student>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
Log.d("error",e.toString());
}
@Override
public void onNext(List<Student> students) {
list = new ArrayList<>();
Log.d("response size", String.valueOf(students.size()));
for(int i = 0; i < students.size(); i++){
Student student = new Student();
student.setId(students.get(i).getId());
student.setName(students.get(i).getName());
list.add(student);
}
RecyclerAdapter recyclerAdapter = new RecyclerAdapter(list);
RecyclerView.LayoutManager recyce = new LinearLayoutManager(MainActivity.this);
recyclerView.setLayoutManager(recyce);
recyclerView.setItemAnimator( new DefaultItemAnimator());
recyclerView.setAdapter(recyclerAdapter);
}
});
}
}
我的模型课如下
大学生Java语言
public class Student {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} }
我正在
D/错误:java。lang.IllegalStateException:应为BEGIN\u数组,但在日志的第1行第2列路径$处为BEGIN\u对象
我到处都在搜索这个错误,但找不到关于RxJava和改型的任何信息。
再添加一个类,并按如下方式使用它。
public class ResponseClass {
@SerializedName("students")
@Expose
private List<Student> students = null;
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}
}
APIInterface.java
public interface APIService {
@GET("/bins/tdze5")
Observable<ResponseClass> getdata();
}
主要活动。Java语言
private void getData() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.myjson.com")
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
APIService apiService = retrofit.create(APIService.class);
Observable<ResponseClass> observable = apiService.getdata().subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
observable.subscribe(new Observer<ResponseClass>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
Log.d("error",e.toString());
}
@Override
public void onNext(ResponseClass response) {
list = new ArrayList<>();
List<Student> students = response.getStudents();
Log.d("response size", String.valueOf(students.size()));
for(int i = 0; i < students.size(); i++){
Student student = new Student();
student.setId(students.get(i).getId());
student.setName(students.get(i).getName());
list.add(student);
}
RecyclerAdapter recyclerAdapter = new RecyclerAdapter(list);
RecyclerView.LayoutManager recyce = new LinearLayoutManager(MainActivity.this);
recyclerView.setLayoutManager(recyce);
recyclerView.setItemAnimator( new DefaultItemAnimator());
recyclerView.setAdapter(recyclerAdapter);
}
});
}
从Android改型读取JSON字符串时出现问题。
我找到了一些解决方案,但我真的不知道如何开始。 这是我的密码。 接口 主要活动
我正在使用Retro-Fit连接到API online。但是我在尝试解析返回的数据时遇到了这个错误。 返回的数据采用这种格式,数据模型也如下所示:
我试图只获取字符串请求,但它的给定错误如下 我的API输出如下: 响应代码:
我有一个API,为了获取数据,我必须发送一个JSON参数。这是必须在中发送才能获取数据的JSON。 它在postman中工作,但在Android中,我有以下错误: 我想这是我的模型中的一个问题,但我无法修复它。 我的型号: 还有两种型号用于排序和筛选。我使用改装 我使用构造函数设置SendParametersGetData(在本例中,仅设置了视图名和参数),并将其作为输入提供给getMembers
我从以下改装服务中获得了一个json结果: 我在改装后变得像bellow一样: 但是告诉我: 下面是我的模型: