gpt4 book ai didi

java - 从 MtGox/PubNub JSON API 中提取数据的简便方法?

转载 作者:行者123 更新时间:2023-11-29 05:32:48 24 4
gpt4 key购买 nike

我在 Java 中使用 PubNub API 从 MtGox 中提取数据。

当检索数据时,API 以 JSONObject 的形式提供它,它表示 JSON 数据的树结构。尝试直接从 JSONObject 中提取信息位会产生丑陋的代码,其中包含大量对 getJSONObject(String) 的调用,为此可能需要再次处理异常。

因此,我正在寻找一种方便的方法来从 JSONObject 响应中提取信息。到目前为止,我遇到了将 JSONObject 转换为 POJO 然后访问 POJO 的可能性。对于转换,我从 Jackson 库中找到了 ObjectMapper,它在这里做得很好:

public void successCallback(String channel, Object message) {
JSONObject messageJson = (JSONObject) message;

ObjectMapper mapper = new ObjectMapper();
Message myMessage = mapper.readValue(messageJson.toString(), Message.class);

// do stuff with myMessage here
}

这种方法的缺点是我必须编写自己的 POJO 类,例如上面示例中的 Message 类,因为我找不到这些可以在任何地方使用的类。

如何方便的访问存储在JSONObject中的信息?

最佳答案

MtGox JSON API 的 PubNub Java 类

创建现成的 Java 类以摄取 Mt.Gox 提供的实时提要很容易控制台实时提要!

官方比特币维基 JSON 流 API

我们将根据比特币官方 Wiki 提供的比特币 Wiki 提要说明进行工作:https://en.bitcoin.it/wiki/MtGox/API/Pubnub - 继续阅读屏幕截图下方的内容以继续。

PubNub Developer Console

要查看我们将使用的实时数据源,请查看以下两个链接:

  1. 实时饲料交易 Activity (买入/卖出饲料):https://www.pubnub.com/console?sub=sub-c-50d56e1e-2fd9-11e3-a041-02ee2ddab7fe&pub=demo&channel=dbf1dee9-4f2e-4a08-8cb7-748919a71b21&origin=pubsub.pubnub.com&ssl=true
  2. 实时动态代码更新(价格变化):https://www.pubnub.com/console?sub=sub-c-50d56e1e-2fd9-11e3-a041-02ee2ddab7fe&pub=demo&channel=d5f06780-30a8-4a48-a2f8-7ed181b4a13f&origin=pubsub.pubnub.com&ssl=true
  3. 贸易滞后示例:https://www.mtgox.com/lag.html

PubNub Java SDK 文档

我们将使用 PubNub Java SDK 文档 http://www.pubnub.com/docs/java/javase/overview/data-push.html

具体来说,我们将使用 mtgox.subcribe(...) 实例方法来集中精力,如下所示:

Download JAR or Source: https://github.com/pubnub/mtgox

import org.json.JSONObject;
import com.pubnub.mtgox.MtGox;
import com.pubnub.mtgox.MtGoxCallback;

public class PubnubMtGoxSample {

public static void main(String[] args) {
MtGox mtgx = new MtGox();

mtgx.subscribe("ticker.BTCUSD", new MtGoxCallback(){

@Override
public void callback(JSONObject data) {
try {
String channel_name = data.getString("channel_name");
String avg_value = data.getJSONObject("ticker").getJSONObject("avg").getString("value");
System.out.println(channel_name + " : " + avg_value);
} catch (Exception e) {}

}});
}
}

See Full MtGox Example with Java Source Code - https://github.com/pubnub/mtgox/blob/master/java/examples/PubnubMtGoxSample.java

要编译示例,请访问 https://github.com/pubnub/mtgox/tree/master/java并运行

javac -cp Pubnub-MtGox.jar:libs/json-20090211.jar   examples/PubnubMtGoxSample.java

然后运行:

java -cp .:examples/:Pubnub-MtGox.jar:Pubnub-StandardEdition-3.5.6.jar:libs/json-20090211.jar:libs/bcprov-jdk15on-1.47.jar:libs/slf4j-api-1.7.5.jar:libs/slf4j-nop-1.7.5.jar PubnubMtGoxSample

关于java - 从 MtGox/PubNub JSON API 中提取数据的简便方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20547815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com