我正在使用HTTP转换来调用REST Web服务。
我遇到的问题是如何将HTTPOutput映射到SQL Server表的相应字段?我可以通过Expression拆分HTTPOutput吗?如果是,我该如何拆分呢。
这将是我得到的回复(这只是一个样本回复)
{“Response”:{“ns0:Resp”:{“xmlns:ns0”:“UserIDRespone”,
“ns0:messageStatus”:{“ns0:StatusRequest”:“SUCCESS”},
“ns0:payload”:{ “ns0:lowerUserIDresp”:“100001”, “ns0:HigherUserIDresp”:“100005”}
我的目标表将包含以下字段:
映射应如下所示:
你能帮我解决这个问题。
感谢您的帮助!谢谢!
答案 0 :(得分:0)
您可以使用正则表达式来实现相同的目标。正则表达式将是
.*StatusRequest": "(\w*).*lowerUserIDresp": "(\w*).*HigherUserIDresp": "(\w*).*
要了解正则表达式的工作原理,请查看http://regexr.com/3fn2o
如何在Informatica中实现此正则表达式
让我们说保存httpOutput的列名是in_HTP_RESPONSE
。
因此,请在Informatica中使用正则表达式函数REG_EXTRACT
。创建表达式转换并创建3个可变端口。表达条件是
v_StatusRequest = REG_EXTRACT(in_HTP_RESPONSE,'.*StatusRequest":
"(\w*).*lowerUserIDresp": "(\w*).*HigherUserIDresp": "(\w*).*',1)
v_lowerUserIDresp = REG_EXTRACT(in_HTP_RESPONSE,'.*StatusRequest":
"(\w*).*lowerUserIDresp": "(\w*).*HigherUserIDresp": "(\w*).*',2)
v_HigherUserIDresp = REG_EXTRACT(in_HTP_RESPONSE,'.*StatusRequest":
"(\w*).*lowerUserIDresp": "(\w*).*HigherUserIDresp": "(\w*).*',3)
现在您可以将它们用作输出端口,或者您可以将整数值转换为integer
并插入目标。
答案 1 :(得分:0)
Yo可以在Java转换中为JSON Parser编写一个java代码。您可以解析任何键值并将其添加到任何列中。
Refrence :: http://www.oracle.com/technetwork/articles/java/json-1973242.html