Код: Выделить всё
var schemaRegistryConfig = new SchemaRegistryConfig
{
Url = "http://localhost:8081"
};
using var schemaRegistry = new CachedSchemaRegistryClient(schemaRegistryConfig);
var producerConfig = new ProducerConfig
{
BootstrapServers = "localhost:9094"
};
var jsonSerializerConfig = new JsonSerializerConfig
{
AutoRegisterSchemas = true
};
using var producer = new ProducerBuilder(producerConfig)
.SetKeySerializer(Serializers.Utf8)
.SetValueSerializer(new JsonSerializer(schemaRegistry, jsonSerializerConfig))
.Build();
const string jsonString = """{ "name": "John Doe", "age": 30 }""";
using var jsonDocument = JsonDocument.Parse(jsonString);
JsonElement rootElement = jsonDocument.RootElement;
var jsonBytes = JsonSerializer.SerializeToUtf8Bytes(rootElement);
var message = new Message
{
Key = "key1",
Value = jsonBytes
};
var deliveryResult = await producer.ProduceAsync("your-topic", message);
Console.WriteLine($"Delivered message to '{deliveryResult.TopicPartitionOffset}'");
Код: Выделить всё
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Byte[]",
"type": "string",
"format": "byte"
}
Я могу использовать и десериализовать запись, но не уверен, что сделал это это правильно. Кроме того, схема и значение выглядят странно. Я ожидаю, что в схеме будет поле свойств, содержащее поля имени и возраста с их типами. Однако я до сих пор не понимаю, почему это работает.
Подробнее здесь: https://stackoverflow.com/questions/788 ... is-unknown
Мобильная версия