You can use the JSON serializer to send messages that contains JSON data. This serializer takes Progress.Json.ObjectModel.JsonObject objects and converts them to bytes. The basic steps are:

  1. Configure the JsonSerializer for the producer builder.
  2. Create a new JSON object for the message body.
  3. Add JSON names-value pairs to the message body.

This example shows how to set the JSON serializer and send an Apache® Kafka® message in the JSON format.

using OpenEdge.Messaging.*.
using OpenEdge.Messaging.Kafka.*.
using Progress.Json.ObjectModel.*.

block-level on error undo, throw.

var RecordBuilder recordBuilder.
var KafkaProducerBuilder pb.
var IProducer producer.
var JsonObject msgbody.
var IProducerRecord record.
    
pb = cast(ProducerBuilder:Create("progress-kafka"), KafkaProducerBuilder).
pb:SetBootstrapServers("localhost:9092").
pb:SetBodySerializer(new JsonSerializer()).

producer = pb:Build().

recordBuilder = producer:RecordBuilder.

recordBuilder:SetTopicName("json-topic").
    
msgBody = new JsonObject().
msgBody:Add("name", "Lift Line Skiing").
msgBody:Add("address", "1 main street").
    
recordBuilder:SetBody(msgBody). 
record = recordBuilder:Build().

producer:Send(record).    
producer:Flush(100).
            
catch err as Progress.Lang.Error :
    message err:GetMessage(1) view-as alert-box.
end catch.