55.2.6. 6.KeyValuePairField
KeyValuePairField 注释定义键值对字段的 属性。每个 KeyValuePairField 都由标签(= 键)及其关联值标识,类型(字符串,int、日期 …)、可选模式以及字段。
注解名称 | 记录类型 | 级别 |
---|---|---|
KeyValuePairField | Key Value Pair - FIX | 属性 |
参数名称 | 类型 | 必需 | 默认值 | info |
---|---|---|---|---|
tag | int | ✓ | 标记消息中的字段(必需)- 必须是唯一的。 | |
impliedDecimalSeparator | 布尔值 | false | <b>Camel 2.11:</b> Indicates 如果位于指定位置表示的十进制点 | |
name | 字符串 | 字段的名称(可选) | ||
pattern | 字符串 | 格式化用于转换数据的模式(可选) | ||
position | int | 0 | 在 FIX 消息中的键/标签位置必须不同时,生成的消息中的字段的位置必须不同 | |
精度 | int | 0 | 要创建的 BigDecimal 数字的精度 | |
required | 布尔值 | false | 指明字段是必须的 | |
timezone | 字符串 | 要使用的时区。 |
case 1 : tag
此参数代表消息中字段的键:
FIX 消息 - Tag
@Message(keyValuePairSeparator = "=", pairSeparator = "\u0001", type="FIX", version="4.1") public class Order { @Link Header header; @Link Trailer trailer; @KeyValuePairField(tag = 1) // Client reference private String Account; @KeyValuePairField(tag = 11) // Order reference private String ClOrdId; @KeyValuePairField(tag = 22) // Fund ID type (Sedol, ISIN, ...) private String IDSource; @KeyValuePairField(tag = 48) // Fund code private String SecurityId; @KeyValuePairField(tag = 54) // Movement type ( 1 = Buy, 2 = sell) private String Side; @KeyValuePairField(tag = 58) // Free text private String Text; }
案例 2:输出中的不同位置
如果我们将放入 FIX 消息的标签/密钥必须按照预先定义的顺序进行排序,则使用注释 @KeyValuePairField
的属性 位置
。
FIX 消息 - Tag - sort
@Message(keyValuePairSeparator = "=", pairSeparator = "\\u0001", type = "FIX", version = "4.1", isOrdered = true) public class Order { @Link Header header; @Link Trailer trailer; @KeyValuePairField(tag = 1, position = 1) // Client reference private String account; @KeyValuePairField(tag = 11, position = 3) // Order reference private String clOrdId; }