go - goavro 无法使用模式验证 json 数据
问题描述
我是新来的 avro 和努力验证数据。我有这个 avro 模式
{
"namespace": "com.input",
"name": "parent",
"type": "record",
"fields": [
{
"name": "field1",
"type": [
"null",
{
"type": "record",
"name": "child",
"fields": [
{
"name": "child1",
"type": "string"
},
{
"name": "child2",
"type": "string"
}
]
}
]
}
]
}
待验证数据:
{
"field1": {
"child1": "1",
"child2": "abc"
}
}
这是我用来验证使用 goavro 库的代码:
func loadMockData() (stringFormatData string) {
mockData, err := ioutil.ReadFile("sample.json")
if err != nil {
log.Println(err)
}
return string(mockData)
}
func loadSchema() (stringFormatData string) {
mockSchema, err := ioutil.ReadFile("schema.avsc")
if err != nil {
log.Println(err)
}
return string(mockSchema)
}
avroSchema := loadSchema()
jsonString := loadMockData()
codec, err := goavro.NewCodec(avroSchema)
decoded, _, err := codec.NativeFromTextual([]byte(jsonString))
这给了我以下错误: NativeFromTextual 错误:无法解码文本记录“com.input.parent”:无法解码文本联合:无法解码文本映射:无法确定编解码器:“parentid”
我尝试调试 goavro 库,似乎在 map.go 中 fieldcodec 的 parentid 仍然为零。对于简单的字段,此设置可以正常工作。问题在于嵌套数据无法获取 parentid 的编解码器。
任何帮助深表感谢。
解决方案
推荐阅读
- python - AWS Chalice,无法从 POST 请求中获取图像
- node.js - BigQuery NodeJs 库 - 访问 Google Drive 中的外部源时出错
- python - 熊猫计算特定索引的值更改次数
- react-native - keyboardType (name-phone-pad) - React Native
- html - 为什么我不能抓取里面的数据
- 标签
- linux - 在 Linux 中使用 --enable-libxcb 构建 FFMPEG
- go - How to call a method in Golang from a different package
- replication - 我有哪种一致性模型?
- javascript - React js - 将按钮链接到不同的应用程序
- xml - 如何使用 order by 执行此 XQuery?