2017-07-15 16 views
0

私はjavascriptにあまり慣れていません。私はちょうどDISPLY completly具体的な情報特定のjson情報を表示する

にJSON情報を、結果を表示する方法を知っているだろうが、私はありがとう

で唯一の答えが欲しいです。

"fulfillment": { 
     "speech": "Sorry, can you say that again?", 
     "messages": [ 
     { 
      "type": 0, 
      "speech": "Sorry, can you say that again?" ==> answer 
     } 
     ] 

私のjavascriptの

<html> 
<head> 
    <title>API Example</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    <script type="text/javascript"> 
    var accessToken = "xxxxxxxxxxxxxxxxxxx"; 
    var baseUrl = "https://api.api.ai/v1/"; 
    $(document).ready(function() { 
     $("#input").keypress(function(event) { 
     if (event.which == 13) { 
      event.preventDefault(); 
      send(); 
     } 
     }); 
     $("#rec").click(function(event) { 
     switchRecognition(); 
     }); 
    }); 
    var recognition; 
    function startRecognition() { 
     recognition = new webkitSpeechRecognition(); 
     recognition.onstart = function(event) { 
     updateRec(); 
     }; 
     recognition.onresult = function(event) { 
     var text = ""; 
     for (var i = event.resultIndex; i < event.results.length; ++i) { 
      text += event.results[i][0].transcript; 
     } 
     setInput(text); 
     stopRecognition(); 
     }; 
     recognition.onend = function() { 
     stopRecognition(); 
     }; 
     recognition.lang = "en-US"; 
     recognition.start(); 
    } 

    function stopRecognition() { 
     if (recognition) { 
     recognition.stop(); 
     recognition = null; 
     } 
     updateRec(); 
    } 
    function switchRecognition() { 
     if (recognition) { 
     stopRecognition(); 
     } else { 
     startRecognition(); 
     } 
    } 
    function setInput(text) { 
     $("#input").val(text); 
     send(); 
    } 
    function updateRec() { 
     $("#rec").text(recognition ? "Stop" : "Speak"); 
    } 
    function send() { 
     var text = $("#input").val(); 
     $.ajax({ 
     type: "POST", 
     url: baseUrl + "query?v=20150910", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     headers: { 
      "Authorization": "Bearer " + accessToken 
     }, 
     data: JSON.stringify({ query: text, lang: "en", sessionId: "somerandomthing" }), 
     success: function(data) { 
      setResponse(JSON.stringify(data, undefined, 2)); 
     }, 
     error: function() { 
      setResponse("Internal Server Error"); 
     } 
     }); 
     setResponse("Loading..."); 
    } 
    function setResponse(val) { 
     $("#response").text(val); 
    } 
    </script> 
    <style type="text/css"> 
    body { width: 500px; margin: 0 auto; text-align: center; margin-top: 20px; } 
    div { position: absolute; } 
    input { width: 400px; } 
    button { width: 50px; } 
    textarea { width: 100%; } 
    </style> 
</head> 
<body> 
<div> 
    <input id="input" type="text"> <button id="rec">Speak</button> 
    <br>Response<br> <textarea id="response" cols="40" rows="20"></textarea> 
</div> 
</body> 
</html> 

結果、サーバーの答えはあなたのケースでは、あなたがする必要があるすべてはあなたがするプロパティとはsetResponse関数を呼び出しているJSONの場合

{ 
    "id": "2fc6a6b2-9fab-4045-b1cf-xxxxxxxxxxxxx", 
    "timestamp": "2017-07-15T15:28:54.34Z", 
    "lang": "en", 
    "result": { 
    "source": "agent", 
    "resolvedQuery": "Could you tell me something ?", 
    "action": "input.unknown", 
    "actionIncomplete": false, 
    "parameters": {}, 
    "contexts": [], 
    "metadata": { 
     "intentId": "c9376a7d-ab8b-4304-8c84-xxxxxxx", 
     "webhookUsed": "false", 
     "webhookForSlotFillingUsed": "false", 
     "intentName": "Default Fallback Intent" 
    }, 
    "fulfillment": { 
     "speech": "Can you say that again?", 
     "messages": [ 
     { 
      "type": 0, 
      "speech": "One more time?" 
     } 
     ] 
    }, 
    "score": 1 
    }, 
    "status": { 
    "code": 200, 
    "errorType": "success" 
    }, 
    "sessionId": "somerandomthing" 
} 
+0

'data'が" result "ブロックに表示されたJSONであると仮定すると、' data.result.fulfillment.messages [0] .speech' –

+0

はい私は変更が必要ですか? – Amy

答えて

1

音声

setResponse(data.result.fulfillment.messages[0].speech); 

彼はあなたが関数に渡された引数が表示されている場合: "もう一度?"

関連する問題