在一个SON中,我有一个带有指标值的绳子长度,我的任务是生成具有英制输出的"双胞胎".根据"公制"输入中指定的单位(uom),应计算英制值.键中"单位-"后面的值始终是可变的.

这是我的输入Python

{
  "unit-1012108-unitNo": "1012108",
  "unit-1012108-description": "IGNITE PROTON WIND",
  "unit-1012108-category": "211",
  "unit-1012108-att-rope_length-identifier": "rope_length",
  "unit-1012108-att-rope_length-type": "attribute",
  "unit-1012108-att-rope_length-attributeDataType": "DECIMAL",
  "unit-1012108-att-rope_length-values-0-value": "5.21",
  "unit-1012108-att-rope_length-values-0-uom": "cm"
}

这是我想要的输出杨森.稍后可以删除两个辅助字段"-calc-". 我的规格的任务应该是计算2.03英寸.

{
  "unit-1012108-att-rope_length-identifier" : "rope_length",
  "unit-1012108-att-rope_length-type" : "attribute",
  "unit-1012108-att-rope_length-values-0-uom" : "cm",
  "unit-1012108-att-rope_length-values-0-value" : "5.21",
  "unit-1012108-att-rope_length_imp-identifier" : "rope_length_imp",
  "unit-1012108-att-rope_length_imp-type" : "attribute",
  "unit-1012108-att-rope_length_imp-values_0-uom" : "inch",
  "unit-1012108-att-rope_length_imp-values_0-value" : "2.03",
  "unit-1012108-rope_length-calc_imp" : "0.39",
  "unit-1012108-rope_length_calc_metric" : "5.21"
}

我被规格困住了.我的问题就在这里.如何将"Unit--rope_length-calc_imp"与"Unit--rope_long_calc_metric"相乘,然后将值赋给"Unit-*-att-rope_long_imp-values_0-values"?这就是我到目前为止的进展:

[
  {
    "operation": "shift",
    "spec": {
      "unit-*-att-rope_length-values-0-value": [
        "&",
        "unit-&(0,1)-att-rope_length_imp-values_0-value",
        "unit-&(0,1)-rope_length_calc_metric"
      ],
      "unit-*-att-rope_length-values-0-uom": [
        "&",
        "unit-&(0,1)-att-rope_length_imp-values_0-uom"
      ],
      "unit-*-att-rope_length-identifier": [
        "&",
        "unit-&(0,1)-att-rope_length_imp-identifier"
      ],
      "unit-*-att-rope_length-type": [
        "&",
        "unit-&(0,1)-att-rope_length_imp-type"
      ]
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "unit-*-att-rope_length_imp-identifier": "=concat(rope_length,'_imp')"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "unit-*-att-rope_length_imp-values_0-uom": {
        "m": {
          "#feet": "&2",
          "#3.28": "unit-&(2,1)-rope_length-calc_imp"
        },
        "cm": {
          "#inch": "&2",
          "#0.39": "unit-&(2,1)-rope_length-calc_imp"
        },
        "mm": {
          "#inch": "&2",
          "#0.04": "unit-&(2,1)-rope_length-calc_imp"
        },
        "*": {
          "@(2,&1)": "&2"
        }
      },
      "*": "&"
    }
  },
  {
    "operation": "sort"
  }
]

任何暗示都将不胜感激.

推荐答案

100没有功能,但可以通过使用101个功能来模拟,例如

  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "temp_val": "=divide(1,@(1,unit-1012108-att-rope_length-values-0-value))", 
      "unit-1012108-att-rope_length_imp-values_0-value": "=divideAndRound(2,@(1,unit-1012108-rope_length-calc_imp),@(1,temp_val))"
    }
  },
  {
    "operation": "remove",
    "spec": {
      "temp_val": ""
    }
  }

站点https://jolt-demo.appspot.com/上的demo是:

enter image description here

Json相关问答推荐

手动解开没有可编码的SON- Swift

Jolt转换,如果任何字段为空,则将对象值设置为空

从先前的REST调用创建动态JSON主体

使用Jolt库对多个数组进行嵌套循环

使用 jq 重新格式化 JSON 输出

Jolt - 如何比较 if else 条件的两个值

带有 API 测试的 Typescript JSON 模式验证

使用本地 JSON api react TS Axios

使用 jq 和脚本 bash 映射两个 json

如何加入或合并列表元素列表(未知长度)

在 PostgreSQL 中 Select 分层 JSON 作为表

无法在 json --data 中使用变量

如何将动态复杂 json 解析为dart 对象或模型

将 JSON 读取到 pandas 数据框 - ValueError:将 dicts 与非系列混合可能会导致排序不明确

jquery用json数据填充下拉列表

嵌套 JSON:如何向对象添加(推送)新项目?

JSON日期到Java日期?

Spring restTemplate 获取原始 json 字符串

在 JSON.NET 中序列化派生类时的字段顺序

强制 JSON.NET 在序列化 DateTime 时包含毫秒(即使 ms 组件为零)