欢乐连接。3.1.1-如何从url查询字符串映射变量

欢乐连接。3.1.1-如何从url查询字符串映射变量,url,mirth,Url,Mirth,我将从客户处接收url编码的查询字符串: 字符串:?siteId=13222&username=pvuser&password=PV01&externalId=942419444&firstName=John&lastName=Victor&gender=M&dob=11%2f10%2f1955&address=10100+FOREST+HILLS+RD&address=SUITE+300&city=MACHESNEY+PARK&state=IL&zip=61115&homePhone=815-

我将从客户处接收url编码的查询字符串:

字符串:?siteId=13222&username=pvuser&password=PV01&externalId=942419444&firstName=John&lastName=Victor&gender=M&dob=11%2f10%2f1955&address=10100+FOREST+HILLS+RD&address=SUITE+300&city=MACHESNEY+PARK&state=IL&zip=61115&homePhone=815-364-5761&mobile=815-818-0918&empName=AT%26T+UNITED+TECHNOLOGIES

我被指示使用Raw作为我的数据类型,但是这并没有给你一个可以拖放的消息树。作为一名程序员,很难确定映射变量的最佳方式

我找到了一个简单的JavaScript函数,但我无法解析数据。我找不到频道地图了。我不知道这是怎么回事

var parseQueryString = function( queryString ) {
    var params = {}, queries, temp, i, l;

    // Split into key/value pairs
    queries = queryString.split("&");

    // Convert the array of strings into an object
    for ( i = 0, l = queries.length; i < l; i++ ) {
        temp = queries[i].split('=');
        params[temp[0]] = temp[1];
    }

    return params;
};

我将继续使用分隔文本作为输入类型。您可以将分隔符设置为与符号。这将允许您访问消息树,这将允许您使用映射器步骤将值存储在通道映射中,而无需担心channelMap.put

当您将值从消息模板/树拖到映射器步骤中时,如果您想去掉前面的部分并包括“=”,这可能看起来很难看/效率低下,但听起来您似乎对javascript转换器不感兴趣,我会在默认情况下放入的.toString之后添加一个子字符串调用。每个映射器步骤的“映射值”如下所示:

msg.value1.toString().substring(msg.value1.toString().indexOf('=') + 1);
这应该只为querystring中的每个键提供值


您还可以在映射器步骤中执行字符串替换,允许您将“%2f”替换为“/”,将“+”替换为“”。希望这有帮助。

是的,非常感谢!我就是这么做的。我使用分隔文本作为我的数据类型,但我认为这不可能是正确的,因为它有点难看。然后,我对每个节点使用一些正则表达式字符串替换来检索值。我相信有一种更好的方法可以做到这一点,比如javascript变形金刚,你是对的,我对此并不感到兴奋。我要试试你关于地图绘制站的建议。再次非常感谢你!你的建议是更好的办法。这一切都像一个符咒。非常感谢。很乐意帮忙。抱歉让你整整四天都在挠头:p