使用Java进行JSON到Avro的转换

时间:2015-04-14 11:16:42

标签: java json avro

我想将JSON数据转换为Avro文件。那么我该如何通过Java API /代码来实现呢?

我的示例JSON文件是:

[
  {
    "ProductID": "101.0",
    "Id": "1.0",
    "OrderID": "1111.0",
    "Name": "John"
  },
  {
    "ProductID": "102.0",
    "Id": "2.0",
    "OrderID": "2222.0",
    "Name": "Taylor"
  }
]

首先,我如何从JSON文件创建Avro架构文件?

其次,在创建Avro架构后,如何将其转换为Avro文件?

1 个答案:

答案 0 :(得分:2)

检查以下代码是否对您有用。

public <T> T jsonDecodeToAvro(String inputString, Class<T> className,
Schema schema) {

     T returnObject = null;

     try {

         JsonDecoder jsonDecoder = DecoderFactory.get().jsonDecoder(schema,
inputString);

         SpecificDatumReader<T> reader = new
SpecificDatumReader<T>(className);

         returnObject = reader.read(null, jsonDecoder);

     } catch (IOException e) {

         e.printStackTrace();

     }



     return returnObject;
}