解析 Java 中的 bloomberg 响应
parsing the bloomberg response in Java
我得到了这样的 bloomberg 回复。我想对此进行解析并将值放入 excel 或 csv 中。
彭博社的回应在某种 XML 回应中令人头疼。有没有一种简单的方法可以直接解析为 JSON ? (来自对象 'session' 或来自对象 'event')
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 底部提供了更多示例。
我得到了这样的 bloomberg 回复。我想对此进行解析并将值放入 excel 或 csv 中。
彭博社的回应在某种 XML 回应中令人头疼。有没有一种简单的方法可以直接解析为 JSON ? (来自对象 'session' 或来自对象 'event')
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 底部提供了更多示例。