我是Pentaho的新手,我正在尝试以下工作流程:
我使用输入步骤和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未定义。
谢谢!
答案 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
(您可能必须将其添加为常量)