【问题标题】:Knime JSON transformer - Adding an attribute to a JSON objectKnime JSON 转换器 - 向 JSON 对象添加属性
【发布时间】:2020-03-11 09:58:40
【问题描述】:

我已使用 columns to json 节点将一些列转换为 JSON。输出是:

{
  "Material" : 101,
  "UOM" : "GRAM",
  "EAN" : 7698,
  "Description" : "CHALK BOX"
}

我想将 material 属性的值添加为每个 JSON 对象的键。所以,我想要的输出是:

"101":    {
      "Material" : 101,
      "UOM" : "GRAM",
      "EAN" : 7698,
      "Description" : "CHALK BOX"
    }

我尝试在JSON transformer 节点中输入以下表达式,但我得到的只是它生成的新列中的问号:

$Material$:{"Material":$Material$,"UOM":$UOM$,"EAN":$EAN$,"Description":$Description$}

我也尝试用“材料”替换$Material$,但得到了相同的结果。

请问我该怎么办?

【问题讨论】:

  • 您是否也保留了原始列? JSON 列的名称是什么?
  • 是的。这是jsondata

标签: json knime


【解决方案1】:

如果您将Material 列转换为String(例如使用String Manipulator),您可以轻松配置Columns to JSON

如您所见,Data bound key 是重要部分。

String Manipulator 节点配置(string($Material$)):

【讨论】:

  • 感谢您的回答@Gabor。我试过这个,但在 json 对话框的列中,您可以选择所需的列,无论我尝试什么,包含材料值的列都默认位于列表的底部!我无法按照我想要的方式重新排序列。我将如何解决这个问题?欢呼
  • 您能否在您的问题中添加一个(几个)屏幕截图,我不确定您的问题到底是什么。
【解决方案2】:

我终于设法通过不同的方法解决了这个问题。

我将 JSON 数据拆分为几列,然后使用 join 函数按所需顺序创建一个字符串。我将生成的字符串通过 string to JSON 节点创建新的 JSON 对象。

感谢您的所有提示和 cmets!

【讨论】:

    猜你喜欢
    • 2017-02-10
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 2018-08-19
    相关资源
    最近更新 更多