【问题标题】:Pentaho Data Integration JSON Output /" instead of "Pentaho 数据集成 JSON 输出 /" 而不是 "
【发布时间】:2021-12-09 14:53:41
【问题描述】:

遇到 Pentaho JSON 转换问题。我想这是一个简单的问题,我只是不知道该工具。我有一个 JSON 输入和一个 JSON 输出,我正在使用自动字段映射。

输入:

{
   "ArrayExample":[
      {
         "fruitId":"asdasg22389khsdall"
      }
   ],
   "name":"Test",
   "fruits":[
      "Apples",
      "Bananas"
   ]
}

输出:

{
   "data":[
      {
         "ArrayExample":"[{\"fruitId\":\"asdasg22389khsdall\"}]",
         "fruits":"[\"Apples\",\"Bananas\"]",
         "name":"Test"
      }
   ]
}

我试图只得到“Apples”而不是“Apples”,但我似乎找不到答案。我想在 API 调用中使用 JSON,但 API 调用不适用于 \"。我什至尝试使用另一个名为 Talend 的 API 工具,它遇到了同样的问题,甚至更多。

任何帮助[非常感谢],尽我所能。

配置示例link

【问题讨论】:

    标签: java json escaping etl pentaho


    【解决方案1】:

    我在我的环境中重新创建了您的转换,并收到了相同的结果。 但是,我注意到以下几点:

    1. “预览数据”选项卡显示带有常规双引号的数据,而不是 escape-char 双引号 (")。
    2. 当我尝试继续转换时,即使用 JSON 输出作为下一阶段的输入时, 它知道 escape-char 双引号并将其转换为常规双引号。

    因此,我的结论是,您应该继续在 Pentaho 内部的 API 调用中使用 JSON,这样它就可以自动处理 escape-char 双引号, 或者您应该将该文件作为常规文本文件进行后处理,您将在其中手动将每个转义字符双引号转换为常规双引号。

    【讨论】:

    • 您好 Rownum,谢谢您的回答!因此,在您的测试中,您是否能够在 pentaho 中使用格式正确的 JSON 进行 PUT 调用?我使用 Talend 和一个调用 python 的 tSystem 组件来进行我需要的转换。
    猜你喜欢
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多