[英]Parsing JSON Arrays from changing URL in Java
對於學校項目,我正忙於為學校編寫一個Android應用程序,以打開學生的時間表。 我將它們全部存儲在Web服務器上,可以使用domain.com/schedule.php?lln=打開它們,它以JSON格式為我打開時間表。 我在下面添加了我的。 到目前為止,一切順利。
現在,我正在編寫應用程序本身,但是我遇到了我的知識極限。 我正在嘗試下載並反序列化JSON,以在應用程序中用作字符串來填充一些Textviews。 我到處都在研究如何從url導入數組,但是沒有任何幫助。 我一直在和Google的GSON混為一談,但那里也沒有運氣。 有什么建議么?
{"info":{"niveau": "H5","naam": "Sven Boekelder","lln": "15518","klas": "H5F"},"schedule": [["IN LKH H5.IN1 447 ","ZA H5F ","EN TOO H5F 424 ","SK VEB H5.SK2 411 ","BI ROD H5.BI2 427 ","NA BMF H5.NA2 425 ","LO SCL H5F T56 ","LO SCL H5F T56 ","-"],["M VEB H5F 426 ","BI ROD H5.BI2 427 ","SK VEB H5.SK2 413 ","WB WLH H5.WB1 421 ","NE VRH H5F 404 ","EN TOO H5F 424 ","-","-","-"],["ZB H5F ","NE VRH H5F 404 ","-","IN LKH H5.IN1 453 ","NA BMF H5.NA2 409 ","SK VEB H5.SK2 410 ","-","WB WLH H5.WB1 422 ","-"],["-","EN TOO H5F 424 ","NA BMF H5.NA2 409 ","WB WLH H5.WB1 421 ","-","BI ROD H5.BI2 427 ","-","-","-"],["NE VRH H5F 404 ","-","IN LKH H5.IN1 447 ","-","-","-","-","-","-"]]}
我對Android開發還很陌生,所以非常感謝您的解釋!
您應該構建描述您的響應的數據模型。 我看到兩個類: Response
和Info
。 信息類
class Info {
private String niveau;
private String naam;
private int lln;
private String klas;
public String getNiveau() {
return niveau;
}
public void setNiveau(String niveau) {
this.niveau = niveau;
}
public String getNaam() {
return naam;
}
public void setNaam(String naam) {
this.naam = naam;
}
public int getLln() {
return lln;
}
public void setLln(int lln) {
this.lln = lln;
}
public String getKlas() {
return klas;
}
public void setKlas(String klas) {
this.klas = klas;
}
@Override
public String toString() {
return "Info [niveau=" + niveau + ", naam=" + naam + ", lln=" + lln
+ ", klas=" + klas + "]";
}
}
回應類別:
class Response {
private Info info;
private String[][] schedule;
public Info getInfo() {
return info;
}
public void setInfo(Info info) {
this.info = info;
}
public String[][] getSchedule() {
return schedule;
}
public void setSchedule(String[][] schedule) {
this.schedule = schedule;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("Response [info=");
builder.append(info).append(", schedule=");
for (String[] array : schedule) {
builder.append(Arrays.toString(array));
}
builder.append("]");
return builder.toString();
}
}
現在,主要方法如下所示:
Gson gson = new GsonBuilder().serializeNulls().create();
Response res = gson.fromJson(response, Response.class);
System.out.println(res);
該程序打印:
Response [info=Info [niveau=H5, naam=Sven Boekelder, lln=15518, klas=H5F], schedule=[IN LKH H5.IN1 447 , ZA H5F , EN TOO H5F 424 , SK VEB H5.SK2 411 , BI ROD H5.BI2 427 , NA BMF H5.NA2 425 , LO SCL H5F T56 , LO SCL H5F T56 , -][M VEB H5F 426 , BI ROD H5.BI2 427 , SK VEB H5.SK2 413 , WB WLH H5.WB1 421 , NE VRH H5F 404 , EN TOO H5F 424 , -, -, -][ZB H5F , NE VRH H5F 404 , -, IN LKH H5.IN1 453 , NA BMF H5.NA2 409 , SK VEB H5.SK2 410 , -, WB WLH H5.WB1 422 , -][-, EN TOO H5F 424 , NA BMF H5.NA2 409 , WB WLH H5.WB1 421 , -, BI ROD H5.BI2 427 , -, -, -][NE VRH H5F 404 , -, IN LKH H5.IN1 447 , -, -, -, -, -, -]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.