Get JSON-array von retrofit Antwort
Muss ich parse JSON-array von Retrofit. Ich brauche, um den folgenden Schlüssel:
{
"rc":0,
"message":"success",
"he":[
{
"name":"\u05de\u05e4\u05e7\u05d7",
"type":0
}
]
}
Kann ich einfach die Nachricht, aber ich bin nicht in der Lage zu bekommen, "er" array von Antwort.
Hier meine Daten Modell Klasse
public class GetRoleData implements Serializable {
@SerializedName("he")
private ArrayList<Roles> he;
@SerializedName("message")
private String message;
public GetRoleData() {
this.he = new ArrayList<>();
this.message = "";
}
public ArrayList<Roles> getUserRoles() {
return he;
}
public String getMessage() {
return message;
}
public class Roles {
public Roles() {
name = "";
type = -1;
}
@SerializedName("name")
private String name;
@SerializedName("type")
private int type;
public int getType() {
return type;
}
public String getName() {
return name;
}
}
}
Dies ist, wie sende ich eine Anfrage an den server:
@POST("index.php/")
Call<GetRoleData> getUserRoles(@Body SetParams body);
hier ist, wie ich bin senden von request-und response-handling
APIService apiService = retrofit.create(APIService.class);
Call<GetRoleData > apiCall = apiService.getUserRoles(params);
apiCall.enqueue(new Callback<GetRoleData >() {
@Override
public void onResponse(retrofit.Response<GetRoleData > mUserProfileData, Retrofit retrofit) {
Log.e("locale info", "mUserProfileData = " + mUserProfileData.body().toString());
if (pDialog != null) {
pDialog.dismiss();
}
if (mUserProfileData.body().getMessage().equals("success")) {
Log.e("locale info", "user roles = " + mUserProfileData.body().getUserRoles().size());
} else {
Toast.makeText(RegisterActivity.this, getResources().getString(R.string.get_role_error), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Throwable t) {
if (pDialog != null) {
pDialog.dismiss();
}
t.printStackTrace();
}
});
, Was ich will
Ich brauche, um die "er" array von oben Antwort. Bitte helfen, Danke.
hier ist die Antwort, die ich erhalte..
- Bitte fügen Sie den code, wo sind die Anforderung und Behandlung der Antwort
- überprüfen Sie bitte.
- was
I am not able to get "he" array from response
genau bedeutet? - haben Sie die Antwort whihc muss ich analysieren? ich brauche, um jsonArray aus der Antwort, die "er" @Yazan
- bitte überprüfen Sie aktualisierte Frage. ich möchte die Daten in "er"
- statt
mUserProfileData.body().getUserRoles()
versuchenmUserProfileData.getUserRoles()
warum geben Sie Körper, ich denke, das ist eine Darstellung Hinzugefügt von studio.
Du musst angemeldet sein, um einen Kommentar abzugeben.
UPDATE FÜR Retrofit-2.0-beta2:
Schnittstelle:
MainActivity ' s onCreate:
Retrofit 1.9
Ich Ihre
GetRoleData
KlasseSchnittstelle:
MainActivity:
Den screenshot wie folgt:
compile 'com.squareup.retrofit:retrofit:1.9.0'
RestAdapter
ist jetzt auch umbenannt inRetrofit
. stackoverflow.com/questions/32424184/...dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.google.code.gson:gson:2.4' compile 'com.squareup.okhttp:okhttp:2.5.0' compile 'com.squareup.retrofit:retrofit:1.9.0' }
Mocky für tests -> http://www.mocky.io/v2/567275072500008d0e995b2c
Ich bin mit Retrofit-2 (beta-2). Dies funktioniert für mich, nichts besonderes:
Rufen definition:
Modelle:
Retrofit:
Aufruf ausführen:
Die Sie geschrieben haben, alle Ihre Getter außer
he
richtig. Um für die Nachrüstung zu analysieren, Ihre JSON-Datei, Sie sollten schreiben Sie Ihre getter fürhe
variable wie folgt.Versuchen Sie auch, das entfernen von new ArrayList aus dem Konstruktor.
//Verwenden Sie den folgenden Pojo-Klassen
Einen anderen einfachen Weg, um Daten mithilfe von webservices ist die Verwendung
JsonElement
und dann konvertieren Sie Sie in JsonObject und analysieren JsonObject. Ez-Pz.Hinweis : JsonObject ist nicht dasselbe wie JSONobject, JsonObject gehört zu GSON Bibliothek