【发布时间】:2021-08-31 04:33:14
【问题描述】:
我有一个 avro 模式,它是一个深度嵌套的对象,具有相同的(子)结构。它看起来像这样:
{
"type": "record",
"namespace": "company.car.v1",
"name": "CarV1",
"fields": [
{
"name": "plateNumber",
"type": "string"
},
{
"name": "ownerId",
"type": "string",
"keepThisField": "true"
},
{
"name" : "details",
"keepThisField": "true"
"type" : {
"type" : "record",
"name" : "DetailsV1",
"fields" : [
{
"name": "engine",
"type": {
"type": "record",
"name": "EngineV1",
"fields": [
{
"name": "size",
"type": "int",
"default": 0,
"keepThisField": "true"
},
{
"name": "valvesCount",
"type": "int",
"default": 0
}
]
}
},
{
"name" : "color",
"type" : "string",
"default" : "NONE"
},
{
"name" : "rimSize",
"type" : "int",
"default" : "NONE"
}
]},
"default" : {}
},
{
"name": "isBrandNew",
"type": "boolean"
}
]
}
我希望能够在 JavaScript 中普遍获取此对象(Schema)的所有对象路径。所以有类似 extractPaths(avroSchema) 的东西,上面的例子会返回:
[
"plateNumber",
"ownerId",
"details.engine.size",
"details.engine.valvesCount",
"details.color",
"details.rimSize",
"isBrandNew"
]
字符串的顺序显然无关紧要。任何人都知道如何在 JavaScript 中实现这一点?
【问题讨论】:
标签: javascript arrays object lodash javascript-objects