首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改进JOLT规范以获得预期结果

改进JOLT规范以获得预期结果
EN

Stack Overflow用户
提问于 2021-11-19 10:11:53
回答 1查看 23关注 0票数 1

源JSON:

代码语言:javascript
复制
[
  {
    "other": false,
    "granularity": [
      {
        "impressions": 15,
        "date": "2021-11-02"
      },
      {
        "impressions": 67,
        "date": "2021-11-03"
      }
    ],
    "metadata": {
      "adGroupId": 5792423,
      "startTime": "2021-06-29T21:00:00.000"
    }
  },
  {
    "other": false,
    "granularity": [
      {
        "impressions": 226,
        "date": "2021-11-02"
      },
      {
        "impressions": 2339,
        "date": "2021-11-03"
      }
    ],
    "metadata": {
      "adGroupId": 578101600,
      "startTime": "2021-06-29T08:05:52.176"
    }
  }
]

我尝试了这个规范:

代码语言:javascript
复制
[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "granularity": {
          "*": "[&2].&"
        },
        "metadata": {
          "adGroupId": "[&2].adGroupId"
        }
      }
    }
  }
]

结果:

代码语言:javascript
复制
[
  {
    "0": {
      "impressions": 15,
      "date": "2021-11-02"
    },
    "1": {
      "impressions": 67,
      "date": "2021-11-03"
    },
    "adGroupId": 5792423
  },
  {
    "0": {
      "impressions": 226,
      "date": "2021-11-02"
    },
    "1": {
      "impressions": 2339,
      "date": "2021-11-03"
    },
    "adGroupId": 578101600
  }
]

我想从顶层删除这些索引0,1,...etcadGroupId应该在每一行中。

所以我期望得到这样的结果:

代码语言:javascript
复制
[
  {
    "impressions": 15,
    "date": "2021-11-02",
    "adGroupId": 5792423
  },
  {
    "impressions": 67,
    "date": "2021-11-03",
    "adGroupId": 5792423
  },
  {
    "impressions": 226,
    "date": "2021-11-02",
    "adGroupId": 578101600
  },
  {
    "impressions": 2339,
    "date": "2021-11-03",
    "adGroupId": 578101600
  }
]

如何修复它?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-19 13:11:14

您可以在使用[&3].&1.作为子键前缀的同时,收集granularity键下的键值对,以便通过向上三级选择常用索引,然后在最后一步删除索引的键,例如

代码语言:javascript
复制
[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "granularity": {
          "*": {
            "*": "[&3].&1.&",
            "@(2,metadata.adGroupId)": "[&3].&1.adGroupId"
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": ""
      }
    }
  }
]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70033124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档