我需要从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