我正在编写我的第一个Avro架构,它使用JSON作为架构语言。我知道你不能把评论放到普通的JSON中,但我想知道Avro工具是否允许评论。例如。也许在解析JSON之前它会剥离它们(比如预处理器)。
编辑:我正在使用C ++ Avro工具链
答案 0 :(得分:7)
是的,您可以在Avro JSON架构中使用C注释:/* something */ or // something
Avro工具会在解析过程中忽略这些表达式。
编辑:它仅适用于Java API。
答案 1 :(得分:7)
是的,但它是有限的。在架构中,Avro数据类型'记录' enum'和'固定'允许一个' doc'包含任意文档字符串的字段。例如:
{"type": "record", "name": "test.Weather",
"doc": "A weather reading.",
"fields": [
{"name": "station", "type": "string", "order": "ignore"},
{"name": "time", "type": "long"},
{"name": "temp", "type": "int"}
]
}
答案 2 :(得分:2)
不,它不能在C ++和C#版本(从1.7.5开始)。如果您查看代码,他们只需将JSON推送到JSON解析器中,而无需任何注释预处理 - 奇怪的编程风格。文档和语言支持似乎相当草率......
答案 3 :(得分:1)
根据the current (1.9.2
) Avro specification,允许将未定义的其他属性作为元数据:
这允许您添加如下注释:
{
"type": "record",
"name": "test",
"comment": "This is a comment",
"//": "This is also a comment",
"TODO": "As per this comment we should remember to fix this schema" ,
"fields" : [
{
"name": "a", "type": "long"
},
{
"name": "b", "type": "string"
}
]
}