具有默认对象数组的 AVRO 模式
AVRO schema with default array of objects
我有一个带有数组字段的 AVRO 模式。这个数组字段中的项目是另一个 AVRO 模式的对象。下面是我现在的代码。
{
"name": "bars",
"type": ["null", {
"type": "array",
"items": "com.example.Bar"
}],
"default": null
}
此代码是“bars”的字段定义,它是一个包含“com.example.Bar”个对象的数组。
我现在将默认值设置为“null”,但是我想明确地将默认值设置为 3 个 Bar 对象的数组。
假设我的 Bar 具有以下字段定义
{
"name": "name",
"type": [
"null",
"string"
],
"default": null
},
{
"name": "number",
"type": [
"null",
"int"
],
"default": null
}
我想将“条形图”默认设置为
{
"name": "bars",
"type": ["null", {
"type": "array",
"items": "com.example.Bar"
}],
"default": [{"name": "bar1", "number":1}, {"name": "bar2", "number":2}, {"name": "bar3", "number":3}]
}
但是这段代码不起作用。我应该如何设置对象的默认值?
联合字段的默认值对应于first schema in the union。如果默认值是一个数组,那么数组架构应该是联合中的第一个架构。
"type": [
{
"type": "array",
"items": "com.example.Bar"
},
"null"
],
问题是我允许“null”作为数组字段的类型。我想如果我想 pre-populate 具有值的默认字段,我不能允许 null。
所以下面的代码解决了这个问题。
{
"name": "bars",
"type": {
"type": "array",
"items": "com.example.Bar"
},
"default": [{"name": "bar1", "number":1}, {"name": "bar2", "number":2}, {"name": "bar3", "number":3}]
}
我有一个带有数组字段的 AVRO 模式。这个数组字段中的项目是另一个 AVRO 模式的对象。下面是我现在的代码。
{
"name": "bars",
"type": ["null", {
"type": "array",
"items": "com.example.Bar"
}],
"default": null
}
此代码是“bars”的字段定义,它是一个包含“com.example.Bar”个对象的数组。
我现在将默认值设置为“null”,但是我想明确地将默认值设置为 3 个 Bar 对象的数组。
假设我的 Bar 具有以下字段定义
{
"name": "name",
"type": [
"null",
"string"
],
"default": null
},
{
"name": "number",
"type": [
"null",
"int"
],
"default": null
}
我想将“条形图”默认设置为
{
"name": "bars",
"type": ["null", {
"type": "array",
"items": "com.example.Bar"
}],
"default": [{"name": "bar1", "number":1}, {"name": "bar2", "number":2}, {"name": "bar3", "number":3}]
}
但是这段代码不起作用。我应该如何设置对象的默认值?
联合字段的默认值对应于first schema in the union。如果默认值是一个数组,那么数组架构应该是联合中的第一个架构。
"type": [
{
"type": "array",
"items": "com.example.Bar"
},
"null"
],
问题是我允许“null”作为数组字段的类型。我想如果我想 pre-populate 具有值的默认字段,我不能允许 null。
所以下面的代码解决了这个问题。
{
"name": "bars",
"type": {
"type": "array",
"items": "com.example.Bar"
},
"default": [{"name": "bar1", "number":1}, {"name": "bar2", "number":2}, {"name": "bar3", "number":3}]
}