我需要從JSON數組中取值並顯示它們。以下是我用過的代碼。如何將json數組的值轉換爲java字符串
getresponse
類將向PHP頁面發送HTTP請求並獲取相關的JSON數組,並且公共變量res將容納返回的JSON數組。
public class JSONConverter {
public void convert(){
getresponse gr=new getresponse();
String json = gr.res;
Data data = new Gson().fromJson(json, Data.class);
System.out.println(data);
}
}
class Data {
private String city;
private int reserve_no;
public String getCity() { return city; }
public int getReserve_no() { return reserve_no; }
public void setTitle(String city) { this.city = city; }
public void setId(int reserve_no) { this.reserve_no = reserve_no; }
public String toString() {
return String.format(city);
}
}
getrespose類
public class getresponse {
public static String res;
public void counter() {
try {
URL url = new URL("http://taxi.net/fetchLatest.php");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
String str;
while ((str =br.readLine()) != null) {
res=str;
}
conn.disconnect();
下面是返回的JSON陣列的例子。
[{「reserve_no」:「20」,「city」:「city2」,「street」:「street1234」,「discription」:「discription123」,「date」:「2012-10-22 04:47:54「,」customer「:」abc「}]
此代碼不顯示返回的JSON數組的城市名稱。有人可以通過糾正代碼來幫助我,或者建議更好或更簡單的方法嗎? :)
你的Data類和返回的JSON之間絕對沒有關係,所以GSON如何知道它應該做什麼?您應該創建一個更合適的Data類,並使用與JSON字符串中的字段名稱相匹配的字段。 – fvu
是的,我做了這些改變!標題作爲城市和id作爲reserve_no但我仍然沒有得到相應的城市名稱 – senrulz
所以你說發佈的代碼示例並沒有真正與你實際運行的關係(已經)?這使我們發現問題有點困難,你不這麼認爲嗎?在這種情況下,你應該更新你的代碼示例。 – fvu