【问题标题】:Is there a way to convert JSON Data to avro schema in C#?有没有办法在 C# 中将 JSON 数据转换为 avro 模式?
【发布时间】:2019-12-24 06:20:49
【问题描述】:

我正在尝试将输入的 json 数据转换为 avro 模式。 使用 confluents avro 序列化可以将 Json 模式转换为 Avro 模式。 但是 JSON 数据到 Avro Schema 呢?

输入

{
   "name": "first Name",
   "age": "25",
}

预期的输出将是 Avro 架构。

【问题讨论】:

  • 我认为您要的是 Avro 记录,而不是模式。此外,合流工具不能做你所说的,AFAIK
  • 有一些Java库可以在两种模式格式之间来回转换,所以肯定是可以的。也许他们在提取模式并序列化为 avro 之前使用动态对象作为中间体。

标签: c# .net serialization json.net avro


【解决方案1】:

您可以使用Microsoft.Hadoop.Avro.AvroSerializer。从这里复制的这段代码可以提供帮助:

https://www.csharpcodi.com/csharp-examples/Microsoft.Hadoop.Avro.AvroSerializer.Create(Microsoft.Hadoop.Avro.AvroSerializerSettings)/

    public Task<byte[]> Serialize<TData>(TData data)
        where TData : class
    {
        using (var buffer = new MemoryStream())
        {
            // Serialize the data.
            var avroSerializer = Microsoft.Hadoop.Avro.AvroSerializer.Create<TData>(_settings);

            avroSerializer.Serialize(buffer, data);

            // Return the contents of the buffer.
            buffer.Seek(0, SeekOrigin.Begin);
            return Task.FromResult(buffer.ToArray());
        }
    }

这里的TData是一个可以序列化为Json的模型。

【讨论】:

  • 我想将 JSON 数据转换为 Avro 架构。
  • @me_ 编写一个模型类,将 JSON 反序列化到它,然后将它传递给这个所示的函数。没有直接翻译
猜你喜欢
  • 2018-03-15
  • 2012-05-03
  • 1970-01-01
  • 1970-01-01
  • 2021-10-27
  • 2020-01-10
  • 1970-01-01
  • 1970-01-01
  • 2020-01-17
相关资源
最近更新 更多