JSON 배열에서 값을 가져 와서 표시해야합니다. 아래는 내가 사용한 코드입니다.json 배열에서 값을 Java 문자열로 변환하는 방법
getresponse
클래스는 HTTP 요청을 PHP 페이지로 보내고 관련 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", "도시": "시티 2", "거리": "street1234", "discription": "discription123", "날짜": "2012년 10월 22일 04:47:54 ","customer ":"abc "}]
이 코드는 반환 된 JSON 배열의 도시 이름을 표시하지 않습니다. 누군가 코드를 수정하거나 더 나은 방법 또는 더 쉬운 방법을 제안함으로써 이것을 도와 줄 수 있습니까? :)
Data 클래스와 반환 된 JSON 간에는 아무런 상관 관계가 없으므로 GSON이 어떻게해야하는지 알 수 있습니까? JSON 문자열의 필드 이름과 일치하는 필드를 사용하여보다 적절한 Data 클래스를 만들어야합니다. – fvu
예, 저는 그러한 변화를했습니다! reserve_no로 도시와 ID로 제목을 붙 였지만 응답에서 관련 도시 이름을 아직받지 못했습니다. – senrulz
게시 된 코드 샘플은 실제로 실행중인 것과 관련이 없습니다. 그건 우리가 문제를 발견하는 것이 약간 어렵습니다. 그렇죠? 이 경우 질문에서 코드 샘플을 업데이트해야합니다. – fvu