aliadnani edited a comment on issue #398:
URL:
https://github.com/apache/camel-kafka-connector/issues/398#issuecomment-681705905
If I use `org.apache.kafka.connect.storage.StringConverter` I get the
following for my topic data serialized with **JSON Schema**:
```
"\u0000\u0000\u0000\u0000\u0001{\"name\":\"temperatureCelsius\",\"value\":23.0,\"unit\":\"C\",\"utc\":1592805755142}"
```
The double quotes are escaped and I'm guessing the
`\u0000\u0000\u0000\u0000\u0001` at the beginning is the [Magic Byte/Schema
ID](https://docs.confluent.io/current/schema-registry/serdes-develop/index.html#wire-format)
thats encoded with the message.
I think what's happening when the value converter is set to
`JsonSchemaConverter` is that the message is serialized to a Java object (based
on the [JsonConverter
source](https://github.com/apache/kafka/blob/trunk/connect/json/src/main/java/org/apache/kafka/connect/json/JsonConverter.java)
I'm guessing Jackson JsonNode?) and that object gets passed directly to the
websocket output resulting in something like `Struct{key1=val1,key2=val2}`.
Whereas, with `StringConverter` the message (inlcuding the schema ID bytes) are
deserialized to a String object directly resulting in above ^^ funny looking
JSON.
I was poking around the camel connector codebase and saw transforms, would
it work to write a transform class to take the JsonNode object and format it to
a JSON string with the method `jsonNode.toPrettyString()` before sending it to
the websocket output? - or do I misunderstand what transforms are to camel 😅?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]