如何从Avro Schema生成有效JSON示例?Java转换报错求助
解决Avro JSON匹配问题&实用工具推荐
我太懂这种对着复杂Avro Schema改JSON改到崩溃的感觉了!先给你拆解下你遇到的AvroTypeException: Expected start-union. Got VALUE_STRING报错——这几乎肯定是你的JSON没符合Avro Union类型的格式要求。
Avro里的Union类型(比如["string", "null"]这种多类型可选的结构),在JSON里不能直接写原始值,必须用带类型标记的嵌套结构:比如要传字符串的话得写成{"string": "你的内容"},传null就写{"null": null}。除非你的Union里只有一种类型(这种情况很少见),不然直接写原始值就会触发这个报错。
接下来给你推荐几个能直接根据Avro Schema生成合规JSON示例的在线工具,搜名字就能找到,不用跳转到乱七八糟的外链:
- Avro Schema to JSON Generator:直接粘贴你的Avro Schema,一键生成符合格式的JSON示例,不管是Union类型、嵌套对象还是数组,都能自动处理正确格式,还能手动修改字段值,调试起来特别方便。
- JSON Schema Faker(Avro适配版):它原本是生成JSON Schema模拟数据的,但很多版本支持导入Avro Schema,能自动识别Avro特有的类型约束(比如枚举、固定字节、Union),生成的示例完全符合要求。
- 在线Avro工具集:不少在线Avro工具包里都包含Schema转JSON的功能,同时还能验证你写的JSON是否符合Schema,能给出比Java代码更详细的错误提示,帮你快速定位问题。
另外,如果你想自己手动排查的话,Avro官方的avro-tools命令行工具也很好用,用这个命令验证你的JSON:
avro-tools validate --schema-file your-schema.avsc your-json-file.json
它会告诉你具体哪块格式不对,比Java报错更直观,能帮你快速修正。
内容的提问来源于stack exchange,提问作者user9750148
相关产品推荐
相关产品推荐

