gpt4 book ai didi

java - 在 Java 中解析 bloomberg 响应

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:15 25 4
gpt4 key购买 nike

我收到了这样的 bloomberg 回复。我想对此进行解析并将值放入 excel 或 csv 中。

Bloomberg 响应是一种令人头疼的 XML 响应。有直接解析成 JSON 的简单方法吗? (来自对象“ session ”或来自对象“事件”)

HistoricalDataResponse = {
securityData = {
security = "S X5 Comdty"
eidData[] = {
14001, 14001
}
sequenceNumber = 1
fieldExceptions[] = {
}
fieldData[] = {
fieldData = {
date = 2015-05-06
PX_LAST = 956.0
OPEN = 967.25
}
fieldData = {
date = 2015-06-06
PX_LAST = 914.25
OPEN = 956.0
}
}
}
}

这是回应。由于我们在任何 json 在线查看器中都使用“=”而不是“:”,因此它会作为无效的 json 给出错误。

最佳答案

Bloomberg API 不生成有效的 JSON。尽管您可能会在进行一些修改后将其解析为 JSON,但这不是一种可靠的方法,因为格式可能会根据您要检索的查询和字段的类型而有所不同(并且将来可能会发生变化,因为它不是规范)。

您应该使用文档中详述的提供的方法解析它(请参阅开发人员指南第 7.2.2 节 - 历史数据请求中的示例)。

或者你可以使用 jBloomberg (免责声明:我是作者)您的代码如下所示:

 BloombergSession session = new DefaultBloombergSession();
LocalDate now = LocalDate.now();
RequestBuilder<HistoricalData> hrb = new HistoricalRequestBuilder("S X5 Comdty",
Arrays.asList("PX_LAST", "OPEN"),
now.minusDays(7), now);

HistoricalData result = session.submit(hrb).get();
Map<LocalDate, TypedObject> data = result.forSecurity("SPX Index").forField("PX_LAST").get();
for (Map.Entry<LocalDate, TypedObject> e : data.entrySet()) {
LocalDate dt = e.getKey();
double price = e.getValue().asDouble();
System.out.println("[" + dt + "] " + price);
}

更多示例可在 this page 的底部找到.

关于java - 在 Java 中解析 bloomberg 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30725800/

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