Quickfix支持將FIX消息轉換爲XML,但不支持轉換爲json。我發現的唯一參考文獻是https://docs.google.com/file/d/0B6xZVoYGImPOZGotUmVQOVBBMzA/preview。是否有任何開源的java庫將FIX消息轉換爲json格式?
是否有任何開源庫已經這樣做?
[編輯]有XML到JSON轉換器,但這是一個2步過程,效率不高。有沒有一個庫直接將其轉換爲json格式?
Quickfix支持將FIX消息轉換爲XML,但不支持轉換爲json。我發現的唯一參考文獻是https://docs.google.com/file/d/0B6xZVoYGImPOZGotUmVQOVBBMzA/preview。是否有任何開源的java庫將FIX消息轉換爲json格式?
是否有任何開源庫已經這樣做?
[編輯]有XML到JSON轉換器,但這是一個2步過程,效率不高。有沒有一個庫直接將其轉換爲json格式?
如果你想這樣做,你需要做一些關於如何處理某些情況的決定。例如:
前段時間我做了一個程序,但它是Python,它不是開源的。我利用定義字段編號,名稱和枚舉文本值的QuickFIX XML文件來簡化生活。我認爲我以某種方式將重複組轉換爲數組,但即使如此,如果在重複組中有用戶定義的字段,它也不起作用(您必須編輯XML配置文件,否則無法知道每個組的結束位置)。
既然你問了Java的具體我就不該分類作爲一個答案本身,而是fix2json,一個命令行工具,現在可以幫助目前天然FIX(TV)的消息文件,JSON:
https://github.com/SunGard-Labs/fix2json
完全披露:fix2json的作者,通過我的僱主發佈。
Apache的駱駝包括轉換器:QuickfixjMessageJsonPrinter.java
但是,這僅解析駱駝交換對象。我適應它,使其可用與QuickFix的Message對象:
public class FixToJson {
private static DataDictionary dataDictionary;
public static String fixToJson(Message message) throws Exception {
StringBuilder sb = new StringBuilder();
QuickfixjMessageJsonTransformer renderer = new QuickfixjMessageJsonTransformer();
sb.append(renderer.transform(message, " ", getDictionnary())).append("\n");
sb.append("}\n");
return sb.toString();
}
private static DataDictionary getDictionnary() throws Exception {
try {
if (dataDictionary == null) {
String pathToDictionnary = "/path/to/fixDictionnary/dic.xml";
dataDictionary = new DataDictionary(pathToDictionnary);
}
return dataDictionary;
}
catch (ConfigError configError) {
throw new Exception("Error while instanciating FIX DataDictionnary : " + configError.getMessage());
}
}
}
不要忘了包括
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-quickfix</artifactId>
<version>2.17.0</version>
</dependency>
我沒有單獨測試的立場,所以你可能還需要包括
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.17.0</version>
</dependency>
爲什麼不使用Quickfix將FIX轉換爲XML,然後將XML轉換爲JSON? http://heshans.blogspot.com/2014/01/java-library-to-convert-xml-to-json.html – mjk 2014-08-30 18:02:28