2017-06-10 1 views
0

MY Pojo Classe

package com.webnoo.questin.controllers.networks.pojo; 

import java.util.List; 
import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

public class Profile { 

    @SerializedName("uid") 
    @Expose 
    private String uid; 
    @SerializedName("name") 
    @Expose 
    private String name; 
    @SerializedName("theme") 
    @Expose 
    private String theme; 
    @SerializedName("signature") 
    @Expose 
    private String signature; 
    @SerializedName("signature_format") 
    @Expose 
    private String signature_format; 
    @SerializedName("created") 
    @Expose 
    private String created; 
    @SerializedName("access") 
    @Expose 
    private String access; 
    @SerializedName("login") 
    @Expose 
    private String login; 
    @SerializedName("status") 
    @Expose 
    private String status; 
    @SerializedName("timezone") 
    @Expose 
    private String timezone; 
    @SerializedName("language") 
    @Expose 
    private String language; 
    @SerializedName("picture") 
    @Expose 
    private Picture picture; 
    @SerializedName("data") 
    @Expose 
    private Data data; 
    @SerializedName("uuid") 
    @Expose 
    private String uuid; 
    @SerializedName("roles") 
    @Expose 
    private Roles roles; 
    @SerializedName("og_user_node") 
    @Expose 
    private Og_user_node og_user_node; 
    @SerializedName("field_first_name") 
    @Expose 
    private Field_first_name field_first_name; 
    @SerializedName("field_last_name") 
    @Expose 
    private Field_last_name field_last_name; 
    @SerializedName("field_education") 
    @Expose 
    private Field_education field_education; 
    @SerializedName("field_user_experience") 
    @Expose 
    private Field_user_experience field_user_experience; 
    @SerializedName("field_projects") 
    @Expose 
    private Field_projects field_projects; 
    @SerializedName("field_merits_awards") 
    @Expose 
    private Field_merits_awards field_merits_awards; 
    @SerializedName("field_publications") 
    @Expose 
    private Field_publications field_publications; 
    @SerializedName("field_volunteering") 
    @Expose 
    private Field_volunteering field_volunteering; 
    @SerializedName("field_personal_information") 
    @Expose 
    private Field_personal_information field_personal_information; 
    @SerializedName("field_additional_skills") 
    @Expose 
    private Field_additional_skills field_additional_skills; 
    @SerializedName("field_company_description") 
    @Expose 
    private List<Object> field_company_description = null; 
    @SerializedName("field_i_am_a") 
    @Expose 
    private Field_i_am_a field_i_am_a; 
    @SerializedName("field_groups_logo") 
    @Expose 
    private List<Object> field_groups_logo = null; 
    @SerializedName("field_user_avatar") 
    @Expose 
    private Field_user_avatar field_user_avatar; 
    @SerializedName("metatags") 
    @Expose 
    private Metatags metatags; 
    @SerializedName("rdf_mapping") 
    @Expose 
    private Rdf_mapping rdf_mapping; 
    @SerializedName("comment_notify_settings") 
    @Expose 
    private Comment_notify_settings comment_notify_settings; 
    @SerializedName("realname") 
    @Expose 
    private String realname; 
    @SerializedName("foo") 
    @Expose 
    private String foo; 

    public String getUid() { 
     return uid; 
    } 

    public void setUid(String uid) { 
     this.uid = uid; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getTheme() { 
     return theme; 
    } 

    public void setTheme(String theme) { 
     this.theme = theme; 
    } 

    public String getSignature() { 
     return signature; 
    } 

    public void setSignature(String signature) { 
     this.signature = signature; 
    } 

    public String getSignature_format() { 
     return signature_format; 
    } 

    public void setSignature_format(String signature_format) { 
     this.signature_format = signature_format; 
    } 

    public String getCreated() { 
     return created; 
    } 

    public void setCreated(String created) { 
     this.created = created; 
    } 

    public String getAccess() { 
     return access; 
    } 

    public void setAccess(String access) { 
     this.access = access; 
    } 

    public String getLogin() { 
     return login; 
    } 

    public void setLogin(String login) { 
     this.login = login; 
    } 

    public String getStatus() { 
     return status; 
    } 

    public void setStatus(String status) { 
     this.status = status; 
    } 

    public String getTimezone() { 
     return timezone; 
    } 

    public void setTimezone(String timezone) { 
     this.timezone = timezone; 
    } 

    public String getLanguage() { 
     return language; 
    } 

    public void setLanguage(String language) { 
     this.language = language; 
    } 

    public Picture getPicture() { 
     return picture; 
    } 

    public void setPicture(Picture picture) { 
     this.picture = picture; 
    } 

    public Data getData() { 
     return data; 
    } 

    public void setData(Data data) { 
     this.data = data; 
    } 

    public String getUuid() { 
     return uuid; 
    } 

    public void setUuid(String uuid) { 
     this.uuid = uuid; 
    } 

    public Roles getRoles() { 
     return roles; 
    } 

    public void setRoles(Roles roles) { 
     this.roles = roles; 
    } 

    public Og_user_node getOg_user_node() { 
     return og_user_node; 
    } 

    public void setOg_user_node(Og_user_node og_user_node) { 
     this.og_user_node = og_user_node; 
    } 

    public Field_first_name getField_first_name() { 
     return field_first_name; 
    } 

    public void setField_first_name(Field_first_name field_first_name) { 
     this.field_first_name = field_first_name; 
    } 

    public Field_last_name getField_last_name() { 
     return field_last_name; 
    } 

    public void setField_last_name(Field_last_name field_last_name) { 
     this.field_last_name = field_last_name; 
    } 

    public Field_education getField_education() { 
     return field_education; 
    } 

    public void setField_education(Field_education field_education) { 
     this.field_education = field_education; 
    } 

    public Field_user_experience getField_user_experience() { 
     return field_user_experience; 
    } 

    public void setField_user_experience(Field_user_experience field_user_experience) { 
     this.field_user_experience = field_user_experience; 
    } 

    public Field_projects getField_projects() { 
     return field_projects; 
    } 

    public void setField_projects(Field_projects field_projects) { 
     this.field_projects = field_projects; 
    } 

    public Field_merits_awards getField_merits_awards() { 
     return field_merits_awards; 
    } 

    public void setField_merits_awards(Field_merits_awards field_merits_awards) { 
     this.field_merits_awards = field_merits_awards; 
    } 

    public Field_publications getField_publications() { 
     return field_publications; 
    } 

    public void setField_publications(Field_publications field_publications) { 
     this.field_publications = field_publications; 
    } 

    public Field_volunteering getField_volunteering() { 
     return field_volunteering; 
    } 

    public void setField_volunteering(Field_volunteering field_volunteering) { 
     this.field_volunteering = field_volunteering; 
    } 

    public Field_personal_information getField_personal_information() { 
     return field_personal_information; 
    } 

    public void setField_personal_information(Field_personal_information field_personal_information) { 
     this.field_personal_information = field_personal_information; 
    } 

    public Field_additional_skills getField_additional_skills() { 
     return field_additional_skills; 
    } 

    public void setField_additional_skills(Field_additional_skills field_additional_skills) { 
     this.field_additional_skills = field_additional_skills; 
    } 

    public List<Object> getField_company_description() { 
     return field_company_description; 
    } 

    public void setField_company_description(List<Object> field_company_description) { 
     this.field_company_description = field_company_description; 
    } 

    public Field_i_am_a getField_i_am_a() { 
     return field_i_am_a; 
    } 

    public void setField_i_am_a(Field_i_am_a field_i_am_a) { 
     this.field_i_am_a = field_i_am_a; 
    } 

    public List<Object> getField_groups_logo() { 
     return field_groups_logo; 
    } 

    public void setField_groups_logo(List<Object> field_groups_logo) { 
     this.field_groups_logo = field_groups_logo; 
    } 

    public Field_user_avatar getField_user_avatar() { 
     return field_user_avatar; 
    } 

    public void setField_user_avatar(Field_user_avatar field_user_avatar) { 
     this.field_user_avatar = field_user_avatar; 
    } 

    public Metatags getMetatags() { 
     return metatags; 
    } 

    public void setMetatags(Metatags metatags) { 
     this.metatags = metatags; 
    } 

    public Rdf_mapping getRdf_mapping() { 
     return rdf_mapping; 
    } 

    public void setRdf_mapping(Rdf_mapping rdf_mapping) { 
     this.rdf_mapping = rdf_mapping; 
    } 

    public Comment_notify_settings getComment_notify_settings() { 
     return comment_notify_settings; 
    } 

    public void setComment_notify_settings(Comment_notify_settings comment_notify_settings) { 
     this.comment_notify_settings = comment_notify_settings; 
    } 

    public String getRealname() { 
     return realname; 
    } 

    public void setRealname(String realname) { 
     this.realname = realname; 
    } 

    public String getFoo() { 
     return foo; 
    } 

    public void setFoo(String foo) { 
     this.foo = foo; 
    } 

} 

utilisateur classe de nœud qui donne erreur suivant : BEGIN_OBJECT attendu mais était BEGIN_ARRAY à la ligne 1 colonne 1114 path $ .og_user_node

Mon appel API:

public void getProfile(){ 

     Log.v("checkResponseProfile","check please"); 
    OkHttpClient httpClient = new OkHttpClient.Builder().addInterceptor(new Interceptor() { 
      @Override 
      public okhttp3.Response intercept(Interceptor.Chain chain) throws IOException { 
       Request original = chain.request(); 

       // Request customization: add request headers 
       Request.Builder requestBuilder = original.newBuilder() .addHeader("Accept-Language","application/json") 
         .addHeader("content-type", "application/x-www-form-urlencoded").addHeader("API_KEY", "a5XSE8XCdsY6hAoCNojYBQ") 
         .addHeader("X-CSRF-Token", Constants.token) 
         ; 

       Request request = requestBuilder.build(); 
       return chain.proceed(request); 
      } 
     }).build(); 



     Retrofit retrofit = new Retrofit.Builder() 
       .baseUrl(Constants.API_BASE_URL) 
       .client(httpClient) 

       .addConverterFactory(GsonConverterFactory.create()) 
       .build(); 
     ApiInterface restAPI = retrofit.create(ApiInterface.class); 

     Call<Profile> callProfile = restAPI.getProfile(1015); 
     callProfile.enqueue(new Callback<Profile>() { 
      @Override 
      public void onResponse(Call<Profile> call, Response<Profile> response) { 
       Log.v("checkResponseProfile",response.body().toString()+"code"+response.code()); 
      } 

      @Override 
      public void onFailure(Call<Profile> call, Throwable t) { 
       Log.v("checkResponseProfile","check here"); 
       t.printStackTrace(); 
      } 
     }); 

    } 

Ma méthode de point de terminaison d'interface: @GET ("{uid}") Appel getProfile (@Path ("uid") uid int);

ceci est ma structure de l'API comme mentionné dans le service doc utilisateur Retrieve Objet: - l'utilisateur Retrieve par id URL Rest: - /api/v1/personnes/{uid} Méthode: GET têtes: Accept-Language: demande/JSON api_key: a5XSE8XCdsY6hAoCNojYBQ Content-type: application/x-www-form-urlencoded X-CSRF-Token:

Répondre

0

changer tout appel, rappel et réponse

Call<Profile> 

à

Call<List<Profile>> 

et

Callback<Profile> 

à

Callback<List<Profile>> 

et

Response<Flowers> 

à

Response<List<Flowers>> 
0

Votre appel api renvoie un tableau JSON, mais la décoration de votre méthode Retrofit attend un seul objet de profil, ce qui signifie que vous essayez d'analyser un tableau JSON en tant qu'objet json.

Vous pouvez résoudre ce problème de deux manières.

  • Si vous avez autorité sur l'api, faire revenir un objet JSON au lieu d'un tableau JSON
  • Mieux encore, changer la décoration de votre méthode pour retourner une liste et dans le rappel vient récupérer le premier élément. Voir ci-dessous

Call<List<Profile>> callProfile = restAPI.getProfile(1015); 
 
     callProfile.enqueue(new Callback<List<Profile>>() { 
 
      @Override 
 
      public void onResponse(Call<List<Profile>> call, Response<List<Profile>> response) { 
 
    
 
    //TODO use first entry of response 
 
     Log.v("checkResponseProfile",response.body().toString()+"code"+response.code()); 
 
      } 
 

 
      @Override 
 
      public void onFailure(Call<List<Profile>> call, Throwable t) { 
 
       Log.v("checkResponseProfile","check here"); 
 
       t.printStackTrace(); 
 
      } 
 
     });

espoir qui aide

+0

I essayé essayé – Naman

+0

J'ai essayé ur suggestion a changé le type de retour ftom seul objet à la liste d'objets mais a obtenu l'erreur suivante: BEGIN_OBJECT attendu mais BEGIN_ARRAY à la ligne 1 colonne 1114 chemin $ .og_user_node – Naman

+0

sry l'erreur est ... Prévu BEGIN_ARRAY mais était BEGIN_OBJECT à ligne 1 colonne 2 chemin $ après la déclaration de chnaging et l'appel au type de liste – Naman

0

J'ai résolu la question enfin, la question est de ma classe POJO que j'ai produit que je me sers pour analyse, je prends og_user_node en tant qu'objet unique mais c'est le type de liste de l'objet de type (Og_user_node) changé le type de og_user_node de Og_user_node en List et ensuite corrigé tout le pojo comme pe r la réponse. Au début, je me sers outil pour générer mes classes POJO mais croyez-moi cet outil est pas bon dans le cas où la réponse est grande ,, il ne donne pas les classes correctes

Anyways merci les gars pour votre réponse et aider