当前位置: 首页 > 知识库问答 >
问题:

给定arvo模式和Json数组,如何将它们转换为Avro GenericRecord列表?

施鸿
2023-03-14

鉴于我有一个有效的avro模式,如下所示:

{
 "type": "record",
 "namespace": "com.example",
 "name": "Employee",
 "doc": "Avro Schema for our Employee",     
 "fields": [
   { "name": "first_name", "type": "string", "doc": "First Name of Customer" },
   { "name": "last_name", "type": "string", "doc": "Last Name of Customer" },
   { "name": "age", "type": "int", "doc": "Age at the time of registration" },
 ]

}

和Json数组,如下所示:

[
{
    "first_name": "Alex",
    "last_name": "Dan",
    "age": 35
},
{
    "first_name": "Bill",
    "last_name": "Lee",
    "age": 36
},
{
    "first_name": "Charan",
    "last_name": "Vaski",
    "age": 37
}

]

将json数组转换为Avro GenericRecord列表的最佳有效方法是什么?

我有以下代码,将一个json对象转换为一个GenericRecord

Schema schema = parser.parse(schemaString);
GenericDatumReader<GenericRecord> reader = new GenericDatumReader<>(schema);
JsonDecoder jsonDecoder = DecoderFactory.get().jsonDecoder(schema, jsonString);
GenericRecord record = reader.read(null, jsonDecoder);
System.out.println(record);

共有1个答案

佘飞鸣
2023-03-14

这是迄今为止我能得到的最优化的一个

ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(jsonArray);

Schema schema = parser.parse(schemaString);
GenericDatumReader<GenericRecord> reader = new GenericDatumReader<>(schema);
JsonDecoder jsonDecoder = DecoderFactory.get().jsonDecoder(schema, "");

for (int i = 0; i < jsonNode.size(); i++) {
  jsonDecoder.configure(jsonNode.get(i).toString());
  GenericRecord record = reader.read(null, jsonDecoder);
  System.out.println(record);
}
 类似资料:
  • 对我来说,这似乎是如此基本和简单,但我在网上没有找到任何东西。 有许多关于如何获得JSON模式的示例,也有许多如何从以下对象创建mongoose模式的示例: 如果我试图直接放置JSON模式,我会得到一个错误 但是我在网上找不到从一种类型到另一种类型的转移。 以前有人有这个问题吗?

  • 问题内容: 那是我的JSON数组,但我想将fruits字符串中的所有值转换为Python列表。正确的做法是什么? 问题答案: 您拥有了所需的一切。将是一个字典,将是一个列表

  • 问题内容: 我的脚本向我返回了一个数组(JSON数组),如下所示: 我需要打印“ 键 / 对” 值,就像从“ 地图”中进行 打印一样,如下所示: 我收到的JSON格式是否可能与常规JSON格式不同? 我当前的代码基于 Selenium ,它使用 Java脚本 读取性能统计信息,如下所示: _JavaDoc中_的提到了以下情况: 如果脚本具有返回值(即,如果脚本包含return语句),则将执行以下步

  • 我有以下json字符串,我需要使用java spring boot在csv中转换它们。格式如下。

  • 问题内容: 给定员工和公司等级 和我的代码如下 我希望我能得到这样的结果 这是一个简单的问题,但是我有些困惑。…尤其是Gson和Json…。 请不要提出其他图书馆,我 强制NEED 这个库的工作。而且由于某些情况,我 不 想要这个课。 因此,我需要 手动 将其序列化为json字符串。 编辑: @Sotirios Delimanolis声明的类是设计类之间关系的正确方法。但是,那不是我想要的。 @h

  • 有一个网站这样做,但我想要一个图书馆或CLI。 谢了!