2016-04-23 132 views
0

對不起,如果問題有點簡單。我是新來的,我目前正在嘗試使用網站API獲取一些值。我會在下面放下一個鏈接。這是問題。我的代碼是網站提供的確切代碼。我只想從他們發送的結果中獲取「引用」值。下面是代碼:如何使用Java中的API獲取特定的值或數據

import java.net.URI; 
import java.io.IOException; 
import java.lang.InterruptedException; 
import javax.websocket.*; 

@ClientEndpoint 
public class WSClient { 

@OnOpen 
public void onOpen(Session session) throws java.io.IOException 
{ 
    session.getBasicRemote().sendText("{\"ticks\": \"R_100\"}"); 
} 

@OnMessage 
public void onMessage(String message) 
{ 
    System.out.println("ticks update: " + message); 
} 

public static void main(String[] args) 
    throws IOException, DeploymentException, InterruptedException 
{ 
    WebSocketContainer container = ContainerProvider.getWebSocketContainer(); 
    URI apiUri = URI.create("wss://ws.binaryws.com/websockets/v3"); 
    Session session = container.connectToServer(WSClient.class, apiUri); 
    Thread.sleep(3000); 
} 
} 

這裏是在eclipse我控制檯結果:

蜱更新:{ 「echo_req」:{ 「蜱蟲」: 「R_100」}, 「嘀」 :{ 「曆元」: 「1461413058」, 「符號」: 「R_100」, 「引用」: 「37673.45」, 「ID」: 「810945BC-094B-11E6-B438-8E7300DB46A6」}, 「MSG_TYPE」: 「嘀」 }

結果工作正常,但我想只取「報價」價值這是一個數值。

這裏是鏈接到他們的API網站/開發網站:https://developers.binary.com/

預先感謝您:)

回答

0

你的反應看起來像一個JSON字符串你應該這樣做

@OnMessage 
public void onMessage(String message) 
    JSONObject response = new JSONObject(message); 
    int quote = Integer.parseInt(response.getString("quote")); 
} 
+0

而且我應該在哪裏放這個?就像我剛纔提到的,在理解API方面我很新。特別是java – user3380047

+0

你應該用這個替換onMessage中的行。你需要導入org.json.JSONObject才能工作。將我的代碼中的myAPIresponse替換爲您有的消息變量 –

+0

這是問題。 「不能使靜態參考從類型的JSONObject的非靜態方法的getString(字符串)」 的代碼是「(JSONObject.getString(」引用「));」 這是我現在得到的錯誤 – user3380047

相關問題