Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 移除后'@';从JSON响应获取字符串(),在WSO2序列中使用setPeyloadJSON()时接收错误_Javascript_Json_Xml_Wso2_Wso2ei - Fatal编程技术网

Javascript 移除后'@';从JSON响应获取字符串(),在WSO2序列中使用setPeyloadJSON()时接收错误

Javascript 移除后'@';从JSON响应获取字符串(),在WSO2序列中使用setPeyloadJSON()时接收错误,javascript,json,xml,wso2,wso2ei,Javascript,Json,Xml,Wso2,Wso2ei,使用WSO2 Enterprise Integrator 6.4.0创建web服务。Web服务结构简介 请求到达API.xml 在Sequence.xml中,使用获取JSON负载 这里的问题是,我需要从来自外部系统的响应JSON负载中删除“@”字符。并需要在删除“@”后使用.xslt文件转换响应 我的第一次尝试是脚本中介 <script language="js"> <![CDATA[var payload = mc.getProperty("paylo

使用WSO2 Enterprise Integrator 6.4.0创建web服务。Web服务结构简介

  • 请求到达API.xml

  • 在Sequence.xml中,使用获取JSON负载

  • 这里的问题是,我需要从来自外部系统的响应JSON负载中删除“@”字符。并需要在删除“@”后使用.xslt文件转换响应

    我的第一次尝试是脚本中介

    <script language="js">
                <![CDATA[var payload = mc.getProperty("payload");
                    payload=String(payload).replace('@'/gm,' ');
                    payload = JSON.parse(payload);
                mc.setPayloadJSON(payload);]]>
            </script>
    
    并从序列中调用它

    <property expression="json-eval($.)" name="payload" scope="default" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
    <class name="org.com.ChangeAtType.ChangeAtType"/>
    <property expression="get-property('payload')" name="payload" scope="default" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
    
    
    
    
    但我还是犯了同样的错误

    你能给我个建议吗?
    谢谢

    根据抛出的异常,此问题可能是EI 6.4.0中的一个问题。然而,这似乎已在更新的EI 6.4.0版本中修复

    <payloadFactory media-type="json">
            <format>$1</format>
            <args>
                <arg evaluator="xml" expression="$body[1]/*" literal="false" xmlns:ns="http://org.apache.synapse/xsd"/>
            </args>
        </payloadFactory>
    
    {
        "address": "1590 Lar",
        "@country": "SMCountry123",
        "language": "SMLanguage123"
    }
    
    <script language="js">
                <![CDATA[var payload = mc.getProperty("payload");
                    payload=String(payload).replace('@'/gm,' ');
                    payload = JSON.parse(payload);
                mc.setPayloadJSON(payload);]]>
            </script>
    
    import org.apache.synapse.MessageContext; 
    import org.apache.synapse.mediators.AbstractMediator;
    
    public class ChangeAtType extends AbstractMediator { 
        private String payload = "payload";
    
        public boolean mediate(MessageContext context) { 
            String payload = (String)context.getProperty(this.payload);
            payload = payload.replace("@","");
            context.setProperty(this.payload, payload);
            return true;
        }
    }
    
    <property expression="json-eval($.)" name="payload" scope="default" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
    <class name="org.com.ChangeAtType.ChangeAtType"/>
    <property expression="get-property('payload')" name="payload" scope="default" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>