如何使用Java中的API获取特定的值或数据
问题描述:
对不起,如果问题有点简单。我是新来的,我目前正在尝试使用网站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/
预先感谢您:)
答
你的反应看起来像一个JSON字符串你应该这样做
@OnMessage
public void onMessage(String message)
JSONObject response = new JSONObject(message);
int quote = Integer.parseInt(response.getString("quote"));
}
而且我应该在哪里放这个?就像我刚才提到的,在理解API方面我很新。特别是java – user3380047
你应该用这个替换onMessage中的行。你需要导入org.json.JSONObject才能工作。将我的代码中的myAPIresponse替换为您有的消息变量 –
这是问题。 “不能使静态参考从类型的JSONObject的非静态方法的getString(字符串)” 的代码是“(JSONObject.getString(”引用“));” 这是我现在得到的错误 – user3380047