JOLT Flatten 数组和嵌套对象
JOLT Flatten array and nested object
给出以下 JSON
{
"id": "1234",
"recordType": "E",
"receiveDate": "2009-01-01",
"receiveTime": "09:55:00",
"releaseDate": "2009-01-02",
"releaseTime": "08:30:00",
"classifications": [
{
"reportType": 1031435,
"description": {
"string": "Progress Report"
}
},
{
"reportType": 1031435,
"description": {
"string": "Net Tangible Asset Backing"
}
}
],
"type": "ASX"
}
我需要将其转换为
{
"id": "1234",
"recordType": "E",
"classifications": [
{
"reportType": 1031435,
"description": "Progress Report"
},
{
"reportType": 1031435,
"description": "Net Tangible Asset Backing"
}
],
"type": "ASX"
}
我很难弄清楚如何使用 Jolt 实现这一点,或者它是否可能。
非常感谢您的帮助。
罗恩·米尔恩
您可以使用 shift 转换,例如
[
{
"operation": "shift",
"spec": {
"id": "&",
"recordT*": "&",
"class*": {
"*": {
"reportT*": "&2[&1].&",
"desc*": {
"*": "&3[&2].&1"
}
}
},
"type": "&"
}
}
]
其中 *
通配符用于缩写每个键名称的整个文字,例如 reportT*
表示reportType
,单个 *
通配符代表 others(else case)
首先,我们通过使用 "classifications"
键后的 "*": {
到达整个 JSON 值的最内层属性( "string":...
),以便遍历索引它。 "&"
通配符复制相应属性的每个值,&3
和 &2
用于复制数组的名称 (classifications
),方法是向上移动 2 或 3 级并获取每个字面值,[&1]
或 [&2]
用于确定构造数组对象的公因数。
站点 http://jolt-demo.appspot.com/ 上的演示是
编辑 :如果您的目标是 为缺少的数组元素分配默认值 ,请将 "reportT*": "&2[&1].&"
替换为"*": "&2[&1].&"
考虑到数组 classifications
的元素多于当前状态的情况。
给出以下 JSON
{
"id": "1234",
"recordType": "E",
"receiveDate": "2009-01-01",
"receiveTime": "09:55:00",
"releaseDate": "2009-01-02",
"releaseTime": "08:30:00",
"classifications": [
{
"reportType": 1031435,
"description": {
"string": "Progress Report"
}
},
{
"reportType": 1031435,
"description": {
"string": "Net Tangible Asset Backing"
}
}
],
"type": "ASX"
}
我需要将其转换为
{
"id": "1234",
"recordType": "E",
"classifications": [
{
"reportType": 1031435,
"description": "Progress Report"
},
{
"reportType": 1031435,
"description": "Net Tangible Asset Backing"
}
],
"type": "ASX"
}
我很难弄清楚如何使用 Jolt 实现这一点,或者它是否可能。
非常感谢您的帮助。 罗恩·米尔恩
您可以使用 shift 转换,例如
[
{
"operation": "shift",
"spec": {
"id": "&",
"recordT*": "&",
"class*": {
"*": {
"reportT*": "&2[&1].&",
"desc*": {
"*": "&3[&2].&1"
}
}
},
"type": "&"
}
}
]
其中 *
通配符用于缩写每个键名称的整个文字,例如 reportT*
表示reportType
,单个 *
通配符代表 others(else case)
首先,我们通过使用 "classifications"
键后的 "*": {
到达整个 JSON 值的最内层属性( "string":...
),以便遍历索引它。 "&"
通配符复制相应属性的每个值,&3
和 &2
用于复制数组的名称 (classifications
),方法是向上移动 2 或 3 级并获取每个字面值,[&1]
或 [&2]
用于确定构造数组对象的公因数。
站点 http://jolt-demo.appspot.com/ 上的演示是
编辑 :如果您的目标是 为缺少的数组元素分配默认值 ,请将 "reportT*": "&2[&1].&"
替换为"*": "&2[&1].&"
考虑到数组 classifications
的元素多于当前状态的情况。