JSON:如何从vxml中记录JSON对象值?

时间:2013-09-24 04:50:30

标签: json vxml

我的目标是记录从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>

2 个答案:

答案 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