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

我想使用jolt将一个输入json转换成期望的格式

孙斌
2023-03-14

我的输入json

{
  "properties": [
    {
      "uniqueId": "100",
      "type": "boolean",
      "required": true,
      "definition": false,
      "description": "is bundled or not",
      "password": false,
      "name": "isBundled",
      "value": "true",
      "defaultValue": true,
      "hidden": false,
      "immutable": false,
      "isDeclaredListInput": false,
      "getInputProperty": false,
      "empty": false,
      "country": "asdsa"
    }
  ]
}

根据defaultValue是否存在,我们需要在servicespeccharacteryValue–is default中有一个字段,如果value存在,这将为真,否则为假

这是我的规格

[
  {
    "operation": "shift",
    "spec": {
      "properties": {
        "*": {
          "name": "serviceSpecCharacteristic[&1].name",
          "description": "serviceSpecCharacteristic[&1].description",
          "type": "serviceSpecCharacteristic[&1].valueType",
          "required": "serviceSpecCharacteristic[&1].required",
      "defaultValue":"serviceSpecCharacteristic[&1].serviceSpecCharacteristicValue[].value"
        }
      }
    }
  }
]

电流输出

{
  "serviceSpecCharacteristic" : [ {
    "name" : "isBundled",
    "description" : "is bundled or not",
    "valueType" : "boolean",
    "required" : true,
    "serviceSpecCharacteristicValue" : [ {
      "value" : "true"
    } ]
  } ]
}

预期输出:-根据默认值是否存在,我们需要在 serviceSpecCharacteristicValue – isDefault 中有一个字段 – 如果值存在,这将为 true,否则为 false。

{
  "serviceSpecCharacteristic" : [ {
    "name" : "isBundled",
    "description" : "is bundled or not",
    "valueType" : "boolean",
    "required" : true,
    "serviceSpecCharacteristicValue" : [ {
      "value" : "true",
      "isdefault":true

    } ]
  } ]
}

共有1个答案

翁鸿远
2023-03-14

如果原始 JSON 中不存在,请将默认值添加为 false。然后使用移位操作。

[
  {
    "operation": "modify-default-beta",
    "spec": {
      "properties": {
        "*": {
          //set defaultValue to false if it does not exists.
          "defaultValue": "false"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "properties": {
        "*": {
          "name": "serviceSpecCharacteristic[&1].name",
          "description": "serviceSpecCharacteristic[&1].description",
          "type": "serviceSpecCharacteristic[&1].valueType",
          "required": "serviceSpecCharacteristic[&1].required",
          "value": "serviceSpecCharacteristic[&1].serviceSpecCharacteristicValue[&1].value",
          "defaultValue": "serviceSpecCharacteristic[&1].serviceSpecCharacteristicValue[&1].isdefault"
        }
      }
    }
  }
]

编辑1:

检查defaultValue是否为false,然后将isdefault设为false;否则将isdefault设为true。

[
  {
    "operation": "modify-default-beta",
    "spec": {
      "properties": {
        "*": {
          //set defaultValue to false if it does not exists.
          "defaultValue": "false"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "properties": {
        "*": {
          "name": "serviceSpecCharacteristic[&1].name",
          "description": "serviceSpecCharacteristic[&1].description",
          "type": "serviceSpecCharacteristic[&1].valueType",
          "required": "serviceSpecCharacteristic[&1].required",
          "value": "serviceSpecCharacteristic[&1].serviceSpecCharacteristicValue[&1].value",
          "defaultValue": {
            "false": {
              "#false": "serviceSpecCharacteristic[&3].isdefault"
            },
            "*": { "#true": "serviceSpecCharacteristic[&3].serviceSpecCharacteristicValue[&3].isdefault" }
          }
        }
      }
    }
  }
]
 类似资料:
  • 我有下面的JSON输入,我想删除值标签并在TypeOfSTA中设置标题值。 我想使用JOLT转换在输出JSON中进行转换。 下面是我的请求JSON和输出JSON。 请求 JSON: 请帮助我使用JOLT转换进行转换。 输出JSON:

  • 有人能帮我定义jolt规范,把输入json转换成输出json吗..我在一个文件中输入了json,像{"filename":"test1 "," value":"10"} {"filename":"test2 "," value":"10"}。转换后的输出json应该如下所示:{"filename":"test "," overallvalue":"20 "," filename":[{"filen

  • 我需要使用JOLT转换将下面的输入转换为精确的输出。输入: 输出: 我尝试使用以下规格,但没有驱动到我需要的精确输出。规格: 任何帮助都将不胜感激。谢谢

  • 我想用JOLT规范做JSON到JSON的转换。我有一个输入,它是Flattern JSOn,我想把它隐藏到嵌套JSOn中。我已经为此编写了JOLT规范,下面提到了它。但它并没有给出我所期望的输出。 提前感谢....

  • 我希望Jolt将一个复杂的json转换为下面所需的json。 输入JSON: 输出量的希望值 我试过遵循Jolt Spec 但得到了以下输出 因此,正如所见,除了最后一个级别值之外,所有其他值都具有具有重复值的数组。任何人都可以帮助解决 Jolt 规范中缺失或错误的地方吗?

  • 无法使用颠簸实现上述输出格式,并且经历了多个SO问题,找不到类似的问题。尝试在 jolt 规范数组中添加索引,但不起作用。提前感谢,并在下面找到输入,输出和震动规格 输入: Jolt规格: 电流输出: 预期产出: