Ich habe die Nachrüstung SDK für die Herstellung von API-Anruf verwendet. Ich habe GSON SDK zum Parsen der Antwort. Ich habe etwas schwierig, die JSON-Antwort zu analysieren. Ich habe die JSON-Antwort geschrieben, die unten analysiert werden soll. Ich muss die Adresszeile Arraylist erhalten.Parse JSON Antwort mit GSON in reterofit
Ich bekomme Null Daten von der Liste.
{
"QA": {
"CreditsUsed": 1,
"State": "Results"
},
"SearchResult": {
"VerifyLevel": "Verified",
"Address": {
"AddressLine": [{
"LineContent": "None",
"Label": {},
"Line": "2500Kearney St"
}, {
"LineContent": "None",
"Label": {},
"Line": {}
}, {
"LineContent": "None",
"Label": {},
"Line": {}
}, {
"Label": "City name",
"Line": "Springfield"
}, {
"Label": "State code",
"Line": "MO"
}, {
"Label": {},
"Line": "65803-5048"
}, {
"Label": "Country",
"Line": "UNITED STATES OF AMERICA"
}],
"DPVStatus": "DPVNotConfigured"
},
"VerificationFlags": {
"StateProvinceChanged": true,
"PostCodeCorrected": true
}
}
}
Modellklasse
public class DineshValues {
String Country;
String Search;
@SerializedName("LineContent")
String LineContent;
@SerializedName("Line")
String Line;
@SerializedName("AddressLine")
List<AddressLine> data=new ArrayList();
public List<AddressLine> getData() {
return data;
}
public String getLineContent() {
return LineContent;
}
public void setLineContent(String lineContent) {
LineContent = lineContent;
}
public String getLine() {
return Line;
}
public void setLine(String line) {
Line = line;
}
public void setData(List<AddressLine> data) {
this.data = data;
}
public String getCountry() {
return Country;
}
public void setCountry(String country) {
Country = country;
}
public String getSearch() {
return Search;
}
public void setSearch(String search) {
Search = search;
}
}
Addressklassendatei
public class AddressLine {
@SerializedName("LineContent")
@Expose
private String lineContent;
@SerializedName("Label")
@Expose
private String label;
@SerializedName("Line")
@Expose
private String line;
/**
*
* @return
* The lineContent
*/
public String getLineContent() {
return lineContent;
}
/**
*
* @param lineContent
* The LineContent
*/
public void setLineContent(String lineContent) {
this.lineContent = lineContent;
}
/**
*
* @return
* The label
*/
public String getLabel() {
return label;
}
/**
*
* @param label
* The Label
*/
public void setLabel(String label) {
this.label = label;
}
/**
*
* @return
* The line
*/
public String getLine() {
return line;
}
/**
*
* @param line
* The Line
*/
public void setLine(String line) {
this.line = line;
}
wie diese genannt
RetrofitRest.getClient().getLogin("1111111" ,obj,new Callback<DineshValues >() {
@Override
public void success(DineshValues arg0, Response arg1) {
// TODO Auto-generated method stub
Log.e("size",arg0.getData+"");
}
}
Erhalten Sie eine Ausnahme? Wenn ja, dann bearbeiten Sie die Frage und fügen Sie den vollständigen Logcat-Bericht hinzu. Ich denke, wenn Sie versuchen, arg0.getData zu drucken, druckt es Objektadresse. Tun Sie eine Sache in der AddressLine überschreiben ToString-Methode. Oder geh für arg0.getData.get (0) .getLineContent() –
09-09 05: 54: 53.515: E/AndroidRuntime (1411): java.lang.IndexOutOfBoundsException: Ungültiger Index 0, Größe ist 0 Ich bekomme den Fehler während Ich benutze arg0.getData.get (0) .getLineContent(). –
Ich denke, ich habe etwas falsch gemacht über das Erstellen von Pojo-Klasse für die gegebene Antwort ... können Sie meine Pojo-Klasse überprüfen? –