1

我的目标是从 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[&apos;return&apos;].errorMsg.result_code != &apos;0&apos;">
                                                <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>
4

2 回答 2

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”上测试了这段代码。

于 2013-09-24T05:04:01.143 回答
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

于 2019-05-16T18:35:56.020 回答