使用JSON的Pentaho HTTP Post

时间:2014-10-11 01:30:27

标签: json http pentaho

我是Pentaho的新手,我正在尝试以下工作流程:

  • 从数据库中读出一堆行
  • 做一些转换
  • 将它们发布到JSON的REST Web服务

我使用输入步骤和Json输出步骤计算出前两个。

但是我在最后一步有两个问题:

1)我无法获得我想要的JSON格式。当我只想要{""=[{...}]}时,它坚持要{...}。这不是什么大问题 - 我可以解决这个问题,因为我可以控制Web服务,我可以稍微放宽输入要求。 (注意:此页面http://wiki.pentaho.com/display/EAI/JSON+output通过设置no. rows in a block=1和一个空的JSON块名称给出了我想要的输出示例,但它不像宣传的那样工作。)

2)这是至关重要的一个。我无法将数据作为JSON获取POST。它发布为key=value,其中键是我在HTTP Post字段名称中指定的名称(在“字段”选项卡上),值是编码的JSON。我只想发布JSON作为请求体。我已经尝试使用谷歌搜索,但找不到其他人这样做,让我相信我只是接近这个错误。任何正确方向的指针?

编辑:我很喜欢脚本(用Javascript或其他语言编写)但当我尝试在自定义的javascript片段中使用XmlHttpRequest时,我收到了一个错误,即XmlHttpRequest未定义。

谢谢!

2 个答案:

答案 0 :(得分:4)

这很简单......只需要使用REST客户端(http://wiki.pentaho.com/display/EAI/Rest+Client)而不是HTTP Post任务。不知怎的,我所有的谷歌搜索都没有发现,所以我会在这里留下这个答案,万一其他人和我有同样的问题。

答案 1 :(得分:2)

1。)您需要使用Modified Java Script步骤解析JSON。例如如果JSON输出的输出值被调用result且其内容为{"data"=[{...}]},则应调用var plainJSON = JSON.stringify(JSON.parse(result).data[0])以获取JSON。

2.。)在HTTP Post步骤中,Request实体字段应为plainJSON。另外,不要忘记将Content-Type的标题添加为application/json(您可能必须将其添加为常量)