Javascript 移除后'@';从JSON响应获取字符串(),在WSO2序列中使用setPeyloadJSON()时接收错误
使用WSO2 Enterprise Integrator 6.4.0创建web服务。Web服务结构简介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
<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"/>