无法使用空值分析json

无法使用空值分析json,json,wso2,wso2-am,Json,Wso2,Wso2 Am,(WSO2 API管理器1.9版) 我正试图在API配置的外部序列中使用脚本中介来转换后端服务响应。 请在下面找到示例脚本中介代码: <script language="js"> var data = mc.getProperty("JSONPayload"); var jsonData = JSON.parse(data); mc.setPayloadJSON( jsonData); </script> var data=mc.get

(WSO2 API管理器1.9版)

我正试图在API配置的外部序列中使用脚本中介来转换后端服务响应。 请在下面找到示例脚本中介代码:

<script language="js">
     var data = mc.getProperty("JSONPayload"); 
     var jsonData = JSON.parse(data);
     mc.setPayloadJSON( jsonData);
</script>

var data=mc.getProperty(“JSONPayload”);
var jsonData=JSON.parse(数据);
mc.setPayloadJSON(jsonData);
我在解析JSON请求时出错,因为请求包含空值。
您能否建议如何在wso2 API manager v1.9中修复此问题?

根据您的脚本中介代码,如果数据不是有效的JSON字符串,JSON.parse(data)将抛出错误。你也可以在碳记录中看到这个错误。这就是当您的请求具有空JSON字符串时发生的情况。因此,您可以按如下方式修改代码以消除此问题

<script language="js">
     var data = mc.getProperty("JSONPayload");
     var jsonData; 
     if (data) {
         try {
             jsonData = JSON.parse(data);
         } catch(e) {
             jsonData = {};
         }
     }
     mc.setPayloadJSON(jsonData);
</script>

var data=mc.getProperty(“JSONPayload”);
var jsonData;
如果(数据){
试一试{
jsonData=JSON.parse(数据);
}捕获(e){
jsonData={};
}
}
mc.setPayloadJSON(jsonData);

根据脚本中介代码,如果数据不是有效的JSON字符串,JSON.parse(data)将抛出错误。你也可以在碳记录中看到这个错误。这就是当您的请求具有空JSON字符串时发生的情况。因此,您可以按如下方式修改代码以消除此问题

<script language="js">
     var data = mc.getProperty("JSONPayload");
     var jsonData; 
     if (data) {
         try {
             jsonData = JSON.parse(data);
         } catch(e) {
             jsonData = {};
         }
     }
     mc.setPayloadJSON(jsonData);
</script>

var data=mc.getProperty(“JSONPayload”);
var jsonData;
如果(数据){
试一试{
jsonData=JSON.parse(数据);
}捕获(e){
jsonData={};
}
}
mc.setPayloadJSON(jsonData);

你能在这里发布错误吗?你能在这里发布错误吗?