当前位置: 首页 > 知识库问答 >
问题:

使用jolt转换多个json对象

朱令
2023-03-14
{
  "ResultSets": {
    "ClassPaths": {
      "currentRow": 0,
      "fields": [
        {
          "name": "path"
        },
        {
          "name": "loadOrder"
        }
      ],
      "rows": [
        [
          "/a/b/genenerator.jar",
          "-10"
        ],
        [
          "/a/b/server.jar",
          "0"
        ]
      ]
    },
    "DisabledComponents": {
      "currentRow": 0,
      "fields": [
        {
          "name": "name"
        },
        {
          "name": "location"
        }
      ],
      "rows": [
        [
          "ActiveDirectoryLdapComponent",
          "/a/b/component.hda"
        ],
        [
          "AppAdapterCore",
          "/a/b/AdapterCore.hda"
        ]
      ]
    }
  }
}
{
  "ResultSets" : {
    "ClassPaths" : [ {
      "path" : "/a/b/genenerator.jar",
      "loadOrder" : "-10"
    }, {
      "path" : "/a/b/server.jar",
      "loadOrder" : "0"
    } ],
     "DisabledComponents" : [ {
      "name" : "ActiveDirectoryLdapComponent",
      "location" : "/a/b/component.hda"
    }, {
      "name" : "AppAdapterCore",
      "location" : "/a/b/AdapterCore.hda"
    } ]
  }
}
[
  {
    "operation": "shift",
    "spec": {
      "ResultSets": {
        "*": {
          "rows": {
            "*": {
              "*": "ResultSets.&1.@(3,fields[&].name)"
            }
          }
        }
      }
    }
  }
]

请帮忙。

谢谢,哈里

共有1个答案

阎唯
2023-03-14

你几乎是对的。下面是产生预期输出的规范:

json prettyprint-override">[
  {
    "operation": "shift",
    "spec": {
      "ResultSets": {
        "*": {
          "rows": {
            "*": {
              "*": "ResultSets.&3[&1].@(3,fields[&].name)"
            }
          }
        }
      }
    }
  }
]

说明:

  • &1-引用数组中对象的索引
  • 相反,我们希望将它放在相同的索引下,但由向上三个级别的对象包装。这就是为什么我们使用&3[&1]
  • 而不是 &1的原因
 类似资料:
  • 我想转换这个JSON: 对此JSON: 我目前正在使用该规范,但它不适合我: 有人能给出一个规范吗?有没有关于jolt JSON的明确文档 ................................................................................................................................

  • 我有一个嵌套的JSON对象,如下所示: 我想将其转换为: 我如何使用JOLT实现这一点?感谢您的参与。

  • 我正在尝试使用JOLT(使用NiFi JoltTransformJson处理器)将JSON转换为不同的格式。对于单个JSON记录,正在使用的JOLT在JOLT应用程序演示中运行良好,而如果我使用多个JSON记录执行,那么我在JOLT应用程序演示中没有得到预期的输出。有人能告诉我在JOLT规范中需要做哪些额外的更改来处理多个JSON记录吗? 示例输入json JOLT使用: 预期输出JSON:

  • `我有以下输入json格式,需要转换以下json文件。我正在使用jolt转换,但无法使用https://jolt-demo.appspot.com/#inception网站正确格式化输出 `需要以下使用JOLT Iam的输出json格式,尝试使用JOLT转换进行转换

  • 我想转换我的嵌套json消息,并使用Jolt规范只获取必需的文件- 我的输入JSON: 低于我的规格输出,这不是预期的- 我尝试了很多选择,但国籍不是我预期的输出。请在这里帮助颠簸转换

  • 我试图写一个规范来使用jolt转换完成下面的转换。我需要将平面JSON转换成嵌套JSON。 输入数据: 我在将平面JSON转换为嵌套JSON时遇到了一些问题。这里,我希望基于stoptype属性聚合数据,并且需要针对唯一的有效负载进行聚合。我用https://jolt-demo.appspot.com来测试以下内容。 输出: 你能帮我完成这个预期的输出吗?