我的目标是记录从vxml中的jsp文件中获取的JSON对象值。有没有办法做到这一点。我看到有一个名为JSON.stringify的函数,但那并没有给我任何日志。 以下是我的代码:
<?xml version="1.0"?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
<var name="userId" expr="1" />
<!--form id="get_location"-->
<data name="userData" method="get" src="http://localhost:5000/userLocation.jsp" nameList="userId" />
<property name="inputmodes" value="dtmf"/>
<menu id="menuZero">
<choice dtmf="1" next="#choice1"/>
<choice dtmf="2" next="#choice2"/>
</menu>
<!--/form-->
<form id="choice1">
<block>
<if cond="userData.HttpResponse.do_queryResponse['return'].errorMsg.result_code != '0'">
<goto next="welcome.vxml"/>
<else/>
<goto next="welcome.vxml"/>
</if>
</block>
</form>
<form id="choice2">
<block>
<log expr="JSON.stringify(userData.HttpResponse)"/>
</block>
</form>
</vxml>
答案 0 :(得分:2)
也许,VoiceXML不支持“JSON.stringify”。 尝试获取“json2.js”并添加代码。
<script src="json2.js" />
例如,
<?xml version="1.0" encoding="UTF-8"?>
<vxml
version="2.0"
xmlns="http://www.w3.org/2001/vxml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<script src="json2.js" />
<var name="messageObject" expr="{keyA:'valueA',keyB:'valueB',keyC:'valueC'}" />
<form>
<block><prompt>Write Log!</prompt></block>
<block><log expr="JSON.stringify(messageObject)"/></block>
</form>
</vxml>
我在“Voxeo Prophecy 13”上测试了这段代码。
答案 1 :(得分:0)
我如上所述尝试了json2.js,但遇到了同样的问题,即“分配给未声明的变量JSON”。为了解决这个问题,我只在同一文件(json2.js)中声明了:
var JSON;
然后它正常工作。在vxml中:
<script><![CDATA[
prueba = new Object();
prueba.pepito = 1234;
prueba.OtraPrueba = "lalalapepe";
]]></script>
<log label="IVB_HISTORY">
<value expr="JSON.stringify(prueba)"/>
</log>
它被记录如下:
{"pepito":1234,"OtraPrueba":"lalalapepe"}
我正在使用Convergy的InVision Studio