JOLT 删除嵌套 JSON 中的列表级别
JOLT remove list levels in nested JSON
我有 JSON 个文件,其中元素嵌入列表中,具有不必要的子级别。我需要用 JOLT 简化这个结构,但我不知道如何做。我查看了类似的问答,但没有找到足够相似的示例。
这是输入:
{
"datasets": [{
"datasetid": "id_of_1st_dataset",
"metas": {
"domain": "mydomain",
"records_count": 120234,
"keywords": ["foo", "bar"]
},
"fields": [
{
"name": "1st_field_of_1st_dataset",
"type": "text"
},
{
"name": "2nd_field_of_1st_dataset",
"type": "int"
}
]
},
{
"datasetid": "id_of_2nd_dataset",
"metas": {
"domain": "mydomain",
"records_count": 5402,
"keywords": ["banana", "bar"]
},
"fields": [
{
"name": "1st_field_of_2nd_dataset",
"type": "text"
},
{
"name": "2nd_field_of_2nd_dataset",
"type": "int"
}
]
}
]
}
以及所需的输出:
{
"datasetid": "id_of_1st_dataset",
"domain": "mydomain",
"records_count": 120234,
"keywords": ["foo", "bar"]
"fields": [
{
"name": "1st_field_of_1st_dataset",
"type": "text"
},
{
"name": "2nd_field_of_1st_dataset",
"type": "int"
}
]
},
{
"datasetid": "id_of_2nd_dataset",
"domain": "mydomain",
"records_count": 5402,
"keywords": ["banana", "bar"]
"fields": [
{
"name": "1st_field_of_2nd_dataset",
"type": "text"
},
{
"name": "2nd_field_of_2nd_dataset",
"type": "int"
}
]
}
将此输入转换为此输出的正确 jolt 规格是多少?提前感谢您的关注和最诚挚的问候。
可以通过以下规范完成,
[
{
"operation": "shift",
"spec": {
"datasets": {
"*": {
"datasetid": "[&1].datasetid",
"fields": "[&1].fields",
"metas": {
"*": {
"@": "[&3].&"
}
}
}
}
}
}
]
我有 JSON 个文件,其中元素嵌入列表中,具有不必要的子级别。我需要用 JOLT 简化这个结构,但我不知道如何做。我查看了类似的问答,但没有找到足够相似的示例。
这是输入:
{
"datasets": [{
"datasetid": "id_of_1st_dataset",
"metas": {
"domain": "mydomain",
"records_count": 120234,
"keywords": ["foo", "bar"]
},
"fields": [
{
"name": "1st_field_of_1st_dataset",
"type": "text"
},
{
"name": "2nd_field_of_1st_dataset",
"type": "int"
}
]
},
{
"datasetid": "id_of_2nd_dataset",
"metas": {
"domain": "mydomain",
"records_count": 5402,
"keywords": ["banana", "bar"]
},
"fields": [
{
"name": "1st_field_of_2nd_dataset",
"type": "text"
},
{
"name": "2nd_field_of_2nd_dataset",
"type": "int"
}
]
}
]
}
以及所需的输出:
{
"datasetid": "id_of_1st_dataset",
"domain": "mydomain",
"records_count": 120234,
"keywords": ["foo", "bar"]
"fields": [
{
"name": "1st_field_of_1st_dataset",
"type": "text"
},
{
"name": "2nd_field_of_1st_dataset",
"type": "int"
}
]
},
{
"datasetid": "id_of_2nd_dataset",
"domain": "mydomain",
"records_count": 5402,
"keywords": ["banana", "bar"]
"fields": [
{
"name": "1st_field_of_2nd_dataset",
"type": "text"
},
{
"name": "2nd_field_of_2nd_dataset",
"type": "int"
}
]
}
将此输入转换为此输出的正确 jolt 规格是多少?提前感谢您的关注和最诚挚的问候。
可以通过以下规范完成,
[
{
"operation": "shift",
"spec": {
"datasets": {
"*": {
"datasetid": "[&1].datasetid",
"fields": "[&1].fields",
"metas": {
"*": {
"@": "[&3].&"
}
}
}
}
}
}
]