【发布时间】:2019-11-23 16:27:10
【问题描述】:
我希望能够遍历并访问 avro 架构的“名称”字段值,但由于 avro 期望其架构的特定方式,我无法找到一种有效的方法来执行此操作而不会获得额外的值数据。
我可以递归地遍历它,就好像它是一个 js 对象一样;但是,我最终得到了一些我不想包含在结果中的字段。
例如,在下面的代码中,我想要返回的唯一值是“foobar”,但是我也得到了我不想要的“Foo”,因为它是对象数组的名称,而不是单个值。
{
"type": "record",
"name": "Foo",
"fields": [
{
"name": "foobar",
"type": "string"
}
]
}
我正在使用的当前函数如下所示:
iterateAvro = (target) => {
let result = [];
Object.entries(target).forEach(([key, val]) => {
if (val === null){
return null
}
if (typeof val === 'object'){
result = result.concat(this.iterateAvro(val));
} else {
if(key === 'name'){
result.push(val)
}
}
})
return result
}
我是 avro 的新手(以及一般的编码),不知道是否有 avro 特定的方式来执行此操作。任何帮助将不胜感激。
【问题讨论】:
标签: javascript reactjs schema avro