Android 改装无法在对象中提取JSON
我正在研究如何使用改型来停止使用Android 改装无法在对象中提取JSON,android,json,gson,retrofit2,Android,Json,Gson,Retrofit2,我正在研究如何使用改型来停止使用AsyncTask。我有一个名为Network的接口来发出GET请求,还有一个名为ServiceGenerator的类来创建我的reformation.Builder和我的HTTP拦截器,最后是我的MainActivity(我还实现了名为Results的对象类) 问题是,在MainActivity中我的onResponse方法(.enqueue)中:我不知道如何提取JSON并在视图中放置“name”标记 这是我的ServiceGenerator课程: 公共类服务生
AsyncTask
。我有一个名为Network
的接口来发出GET请求,还有一个名为ServiceGenerator
的类来创建我的reformation.Builder
和我的HTTP拦截器,最后是我的MainActivity
(我还实现了名为Results
的对象类)
问题是,在MainActivity
中我的onResponse
方法(.enqueue
)中:我不知道如何提取JSON并在视图中放置“name”标记
这是我的ServiceGenerator
课程:
公共类服务生成器{
//URL base do endpoint.Deve sempre terminar com/
公共静态最终字符串API_BASE_URL=”https://randomuser.me/";
公共静态S createService(类serviceClass){
//我们需要什么
HttpLoggingInterceptor loggingInterceptor=新的HttpLoggingInterceptor();
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient.Builder httpClient=新建OkHttpClient.Builder()
.读取超时(5,时间单位为秒);
httpClient.addInterceptor(loggingInterceptor);
//httpClient.addInterceptor(loggingInterceptor.build();
//Inst–ncia do改造
改装改装=新改装.Builder()
.baseUrl(API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create(new Gson()))
.client(httpClient.build())
.build();
返回改装。创建(serviceClass);
}
}
这是我的界面网络:
公共接口网络{
@获取(“api/”)
调用randomUser();
}
最后,主要活动是:
公共类MainActivity2扩展了AppCompatActivity{
私有文本视图nome;
私有文本视图SobreName;
私人文本查看电子邮件;
私有文本视图endereco;
私有文本视图;
私有文本视图estado;
私有文本视图用户名;
私有文本视图senha;
私有文本视图nascimento;
私人TextView电话;
私有图像视图foto;
私人对话负载;
社会性别;
公开结果;
公共静态最终字符串BASE_URL=”https://randomuser.me/";
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nome=(TextView)findViewById(R.id.nome);
SobreName=(TextView)findViewById(R.id.SobreName);
email=(TextView)findViewById(R.id.email);
endereco=(TextView)findViewById(R.id.endereco);
cidade=(TextView)findViewById(R.id.cidade);
estado=(TextView)findViewById(R.id.estado);
username=(TextView)findViewById(R.id.username);
senha=(TextView)findViewById(R.id.senha);
nascimento=(TextView)findViewById(R.id.nascimento);
telefone=(TextView)findViewById(R.id.telefone);
foto=(ImageView)findViewById(R.id.foto);
网络=ServiceGenerator.createService(Network.class);
Call requestUser=network.randomUser();
enqueue(新的回调(){
@凌驾
公共void onResponse(调用、响应){
if(response.issusccessful()){
ProgressDialog进度=新建ProgressDialog(MainActivity2.this);
进度。设置标题(“发送…”);
progress.show();
结果r=response.body();
/*也许我应该在这里放点东西:*/
如果(r!=null){
System.out.println();
//r.setGender(results.getGender());
nome.setText((CharSequence)results.setName(r.getName());
//System.out.println(“用户2:+response.raw());
//r、 setGender(r.getGender());
//结果r=新结果();
进步。解散();
//nome.setText(results.gender.toString());
//System.out.println(“随机用户:CARAIO”+user.random);
//命名为setText((字符序列)r.gender);
}else Toast.makeText(MainActivity2.this,“获取JSON时出错”,Toast.LENGTH_LONG.show();
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
}
});
}
}
我的成绩
课程也包括:
公共类结果{
公共静态字符串性别;
公共成果{};
公共静态字符串getGender(){
返回性别;
}
公共静态无效设置性别(字符串性别){
结果:性别=性别;
}
公共列表getName(){
返回名称;
}
公共对象集合名(列表名){
this.name=名称;
返回null;
}
公共列表getLocation(){
返回位置;
}
公共无效设置位置(列表位置){
这个位置=位置;
}
公共字符串getEmail(){
回复邮件;
}
公用电子邮件(字符串电子邮件){
this.email=电子邮件;
}
公共列表getLogin(){
返回登录;
}
public void setLogin(列表登录){
this.login=登录;
}
公共字符串getPhone(){
回电话;
}
公用无效设置电话(字符串电话){
this.phone=电话;
}
公共列表getPicture(){
返回图片;
}
公共图片(列表图片){
这个图片=图片;
}
公开名单名称;
公共列表位置;
公共字符串电子邮件;
公共列表登录;
公用串电话;
公共列表图片;
}
如果你们能帮忙的话,那将是非常棒的
public interface Network {
@GET("api/")
Call<RandomUserServiceResponse> randomUser();
}
public class RandomUserServiceResponse {
private List<Result> results = null;
// private Info info;
public List<Result> getResults() {
return results;
}
public void setResults(List<Result> results) {
this.results = results;
}
}
Call<RandomUserServiceResponse> requestUser = network.randomUser();
requestUser.enqueue(new Callback<RandomUserServiceResponse>() {
@Override
public void onResponse(Call<RandomUserServiceResponse> call, Response<RandomUserServiceResponse> response) {
if (response.isSuccessful()) {
ProgressDialog progress = new ProgressDialog(MainActivity2.this);
progress.setTitle("sending...");
progress.show();
RandomUserServiceResponse r = response.body();
/* if you want to get NAME tag please */
Name name = r.getResults().getName();
/* now you can get Name properties
name.getTitle(),name.getFirst(),name.getLast() */
if (r != null) {
System.out.println();
// r.setGender(results.getGender());
nome.setText((CharSequence) results.setName(r.getName()));
//System.out.println("USER 2: " + response.raw() );
//r.setGender(r.getGender());
//Results r = new Results();
progress.dismiss();
// nome.setText(results.gender.toString());
// System.out.println("random user: CARAIO " + user.random);
//nome.setText((CharSequence) r.gender);
} else Toast.makeText(MainActivity2.this,"ERROR IN GET JSON",Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(Call<RandomUserServiceResponse> call, Throwable t) {
}
});
public class Result {
private String gender;
private Name name;
private Location location;
private String email;
private Login login;
private String dob;
private String registered;
private String phone;
private String cell;
private Id id;
private Picture picture;
private String nat;
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
public Location getLocation() {
return location;
}
public void setLocation(Location location) {
this.location = location;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Login getLogin() {
return login;
}
public void setLogin(Login login) {
this.login = login;
}
public String getDob() {
return dob;
}
public void setDob(String dob) {
this.dob = dob;
}
public String getRegistered() {
return registered;
}
public void setRegistered(String registered) {
this.registered = registered;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getCell() {
return cell;
}
public void setCell(String cell) {
this.cell = cell;
}
public Id getId() {
return id;
}
public void setId(Id id) {
this.id = id;
}
public Picture getPicture() {
return picture;
}
public void setPicture(Picture picture) {
this.picture = picture;
}
public String getNat() {
return nat;
}
public void setNat(String nat) {
this.nat = nat;
}
}
public class Name {
private String title;
private String first;
private String last;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getFirst() {
return first;
}
public void setFirst(String first) {
this.first = first;
}
public String getLast() {
return last;
}
public void setLast(String last) {
this.last = last;
}
}
public class Picture {
private String large;
private String medium;
private String thumbnail;
public String getLarge() {
return large;
}
public void setLarge(String large) {
this.large = large;
}
public String getMedium() {
return medium;
}
public void setMedium(String medium) {
this.medium = medium;
}
public String getThumbnail() {
return thumbnail;
}
public void setThumbnail(String thumbnail) {
this.thumbnail = thumbnail;
}
}
public class Login {
private String username;
private String password;
private String salt;
private String md5;
private String sha1;
private String sha256;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSalt() {
return salt;
}
public void setSalt(String salt) {
this.salt = salt;
}
public String getMd5() {
return md5;
}
public void setMd5(String md5) {
this.md5 = md5;
}
public String getSha1() {
return sha1;
}
public void setSha1(String sha1) {
this.sha1 = sha1;
}
public String getSha256() {
return sha256;
}
public void setSha256(String sha256) {
this.sha256 = sha256;
}
}
public class Location {
private String street;
private String city;
private String state;
private Integer postcode;
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public Integer getPostcode() {
return postcode;
}
public void setPostcode(Integer postcode) {
this.postcode = postcode;
}
}
public class Info {
private String seed;
private Integer results;
private Integer page;
private String version;
public String getSeed() {
return seed;
}
public void setSeed(String seed) {
this.seed = seed;
}
public Integer getResults() {
return results;
}
public void setResults(Integer results) {
this.results = results;
}
public Integer getPage() {
return page;
}
public void setPage(Integer page) {
this.page = page;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
}
public class Id {
private String name;
private Object value;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
}