FTL Native Messages to JSON Translation Reference
This section details the translation between fields in FTL messages and equivalent fields in the JSON representations used on the Apache Kafka side of the Bridge for Apache Kafka (without schemas).
The Bridge for Apache Kafka connectors can use this translation scheme in either direction. However, they use this translation only when the configuration specifies the string converter without schemas.
Inbox
FTL inbox fields are not supported outside of FTL. The translation from FTL to JSON discards any inbox fields.
Field Translations
The table juxtaposes the Java code fragment that would create an FTL message against the equivalent JSON representation.
| FTL (Java) | JSON |
|---|---|
message.setLong("my-long",1);
|
"my-long": 1 |
long[] longArray = {1, 2, 3};
message.setArray("my-long-array", longArray);
|
"my-long-array": [ 1, 2, 3 ] |
message.setString("my-string", "hello");
|
"my-string": "hello" |
String[] stringArray = {"eeny", "meeny", "miny"};
message.setArray("my-string-array", stringArray);
|
"my-string-array": [ "eeny", "meeny", "miny" ] |
message.setDouble("my-double", 9.9);
|
"my-double": { "_d_": 9.9 }
|
double[] doubleArray =
{1.1,
Double.POSITIVE_INFINITY,
Double.NEGATIVE_INFINITY,
Double.NaN};
message.setArray("my-double-array", doubleArray);
|
"my-double-array": [
{ "_d_": 1.1 },
{ "_d_": "Infinity" },
{ "_d_": "-Infinity" },
{ "_d_": "NaN" }
]
|
TibDateTime dateTime = new TibDateTime();
dateTime.set(443815200, 0);
message.setDateTime("my-dateTime", dateTime);
|
"my-dateTime": {
"_m_": 443815200000
}
|
TibDateTime dt1 = new TibDateTime();
dt1.set(1168365600, 0);
TibDateTime dt2 = new TibDateTime();
dt2.set(1003860000, 0);
TibDateTime dt3 = new TibDateTime();
dt3.set(1003860000, 0);
TibDateTime[] dateTimeArray = {dt1, dt2, dt3};
message.setArray("my-dateTime-array", dateTimeArray);
|
"my-dateTime-array": [
{ "_m_": 1168365600000 },
{ "_m_": 1003860000000 },
{ "_m_": 1003860000000 }
]
|
byte[] opaque = {'H', 'i'};
message.setOpaque("my-opaque", opaque);
|
"my-opaque": {
"_o_": "SGk=" }
|
Message nestedMessage = realm.createMessage(null);
nestedMessage.setLong("my-nested-message-long", 2);
message.setMessage("my-message", nestedMessage);
|
"my-message": {
"my-nested-message-long": 2 }
|
Message m1 = realm.createMessage(null);
m1.setString("m1-string", "ftl-is-great");
Message m2 = rlm.createMessage(null);
m2.setDouble("m2-double", 4.5);
Message m3 = rlm.createMessage(null);
m3.setLong("m3-long", 3);
Message[] messageArray = {m1, m2, m3};
message.setArray("my-message-array", messageArray);
|
"my-message-array": [
{ "m1-string": "ftl-is-great" },
{ "m2-double":
{ "_d_": 4.5 } },
{ "m3-long": 3 }
]
|
Copyright © 2020. Cloud Software Group, Inc. All Rights Reserved.
