无法用JsonAvroConverter从START_ARRAY中反序列化java.util.LinkedHashMap



我有一个JSON,看起来像这样:

[
{"id":1},
{"id":2},
{"id":3}
]

当然还有更多的属性,但这足以重现错误。

我试图通过使用JsonAvroConverter类的方法convertToGenericDataRecord将JSON转换为Generic.Record

我的示例代码:
String json = "[{"id":1},{"id":2},{"id":3}]";
String schema =
"{" +
"   "type" : "array"," +
"   "items" : {"type":"record","name":"ids", "fields":[{ "name" : "id", "type" : "string" }]}" +
"}";
JsonAvroConverter converter = new JsonAvroConverter();
GenericData.Record record = converter.convertToGenericDataRecord(json.getBytes(), new Schema.Parser().parse(schema));

它正在投掷:Can not deserialize instance of java.util.LinkedHashMap out of START_ARRAY token

[] json中括号通常用来表示列表。

表示哈希映射,您只需要

{
"key": "value",
"key": "value"
}

最新更新