的Json API解析煩惱我遇到類似什麼人有過在Java JSON解析過去的幾個問題。這是我第一次嘗試這樣的事情,所以任何幫助/提示都非常有用。與Java
我想從這個站點的數據來分析:https://api.bitcoinaverage.com/exchanges/USD
我試圖與這兩個JSON和GSON多種方式。並試圖尋找幫助,但無濟於事。
這裏是被設置的類(這些被自動生成的):
Info.java:
public class Info{
private String display_URL;
private String display_name;
private Rates[] rates;
private String source;
private Number volume_btc;
private Number volume_percent;
public String getDisplay_URL(){
return this.display_URL;
}
public void setDisplay_URL(String display_URL){
this.display_URL = display_URL;
}
public String getDisplay_name(){
return this.display_name;
}
public void setDisplay_name(String display_name){
this.display_name = display_name;
}
public Rates[] getRates(){
return this.rates;
}
public void setRates(Rates[] rates){
this.rates = rates;
}
public String getSource(){
return this.source;
}
public void setSource(String source){
this.source = source;
}
public Number getVolume_btc(){
return this.volume_btc;
}
public void setVolume_btc(Number volume_btc){
this.volume_btc = volume_btc;
}
public Number getVolume_percent(){
return this.volume_percent;
}
public void setVolume_percent(Number volume_percent){
this.volume_percent = volume_percent;
}
}
Rates.java:
public class Rates {
private Number ask;
private Number bid;
private Number last;
public Number getAsk(){
return this.ask;
}
public void setAsk(Number ask){
this.ask = ask;
}
public Number getBid(){
return this.bid;
}
public void setBid(Number bid){
this.bid = bid;
}
public Number getLast(){
return this.last;
}
public void setLast(Number last){
this.last = last;
}
}
MainClass.java:
public class MainClass {
public static void main(String[] args) throws Exception {
Gson gson = new Gson();
String json = readUrl("https://api.bitcoinaverage.com/exchanges/USD");
Info page = gson.fromJson(json, Info.class);
System.out.println(page.getDisplay_name());
}
private static String readUrl(String urlString) throws Exception {
BufferedReader reader = null;
try {
URL url = new URL(urlString);
reader = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuffer buffer = new StringBuffer();
int read;
char[] chars = new char[1024];
while ((read = reader.read(chars)) != -1)
buffer.append(chars, 0, read);
return buffer.toString();
} finally {
if (reader != null)
reader.close();
}
}
}
當我嘗試調用getter時,返回null。 如何正確解析數據,然後能夠調用我想要的任何對象的屬性?例如,如果我想要一個來自「anx_hk」或「bitfinex」的屬性。
這是第一次我在這裏張貼的東西,所以我希望我遵循正確的指導方針。
我還打算通過這個上到Android,一旦我得到的下跌,解析JSON更好。謝謝您的幫助!它將不勝感激。
的_Info_類型不匹配頂層JSON對象的屬性。你需要一個帶有bitfinex屬性的對象來獲取這些數據。 – McDowell