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

将元素数组转换为具有ids的对象的Jolt规范

盖斌
2023-03-14

Jolt对我来说是新的,我一直在与这个问题作斗争,直到我创建这篇文章。

我想把这个:

{
    "Properties": [{
        "Id": "property1",
        "Values": ["randomValue1", "randomValue2"]
    }, {
        "Id": "property2",
        "Values": "randomValue3"
    }, {
        "Id": "property3",
        "Values": "randomValue4"
    }]
}

进入这个

{
    "Properties": [{
        "Id": "property1",
        "Values": "randomValue1"
    },{
        "Id": "property1",
        "Values": "randomValue2"
    }, {
        "Id": "property2",
        "Values": "randomValue3"
    }, {
        "Id": "property3",
        "Values": "randomValue4"
    }]
}

每个属性的值可以是1值,也可以是未知数量值的数组。

我将以下json更改为第一个json中的内容:

{
    "Properties": {
        "property1": ["randomValue1", "randomValue1"],
        "property2": ["randomValue3"],
        "property3": ["randomValue4"]
    }
}
[{
    "operation": "shift",
    "spec": {
        "Properties": {
            "*": {
                "*": "Properties[#2].Values",
                "$": "Properties[#2].Id"
            }
        }
    }
}]

RHS上的属性名称是通用的,属性值的数量也可能不同。提前感谢您抽出时间来帮助我。

共有1个答案

姜彬郁
2023-03-14

检查这是否有帮助:

[
  {
    "operation": "cardinality",
    "spec": {
      "Properties": {
        "*": {
          // normalize values to always be a list
          "Values": "MANY"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "Properties": {
        "*": {
          "Values": {
            "*": {
              // create arrays with values and ids
              "@": "Values",
              "@(2,Id)": "Id"
            }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "Values": {
        "*": {
          // create the final list joining ids and values at the indexes you want
          "@": "Properties[&1].Values",
          "@(2,Id[#1])": "Properties[&1].Id"
        }
      }
    }
  }
]
 类似资料:
  • 我试图将JSON数组转换为具有指定键/值对的元素是对象

  • 问题内容: 我有一个像这样的对象作为服务器的JSON响应返回: 我想将其转换为如下所示的JavaScript数组: 有没有最好的方法来做到这一点?无论我在哪里阅读,人们都在使用复杂的循环逻辑。那么有替代方法可以做到这一点吗? 问题答案: jQuery实际上非常简单 小提琴 在没有jQuery的情况下几乎一样容易,将键转换为数组,然后使用 小提琴 假设它已经被解析为javascript对象,并且实际

  • 问题内容: 我想将对象数组转换为javascript中具有键值对的对象。 我如何将其转换为诸如 我希望大多数浏览器都支持它。 问题答案: 您可以使用和传播语法来创建具有给定对象数组的单个对象。

  • 我需要通过使用JOLT规范来转换JSON结构。我用https://jolt-demo.appspot.com来测试以下内容。 我还可以通过另一个JOLT规范运行OUTPUT,然后检索我所需的JSON输出,但我仍然不知道JOLT规格应该是什么样子,我已经看过了示例,没有进一步了解上面提到的内容。 输入- 这是输入 JSON 这是我目前拥有的雷震天赋 给出以下输出 相反,我要求输出是

  • 我只想扁平化嵌套JSON的属性,但仍然适用于输入数组中的所有对象 很难将这三个字段放在一个规范中(类型字段、geo字段、properties字段)。我编写了规范来单独完成每一个操作,但是当我将这些规范组合在一个对象中使用时,它会产生错误的输出--对象数组真的把它搞砸了。 期望输出:

  • 我必须将 JSON 输入转换为包含一个对象的数组。 我有这个 JOLT 配置: 以下是我的意见: 实际产量: 期望的输出: 你知道该怎么做吗? 谢谢你们的帮助