JSON解析返回错误

时间:2017-09-23 11:08:47

标签: javascript php arrays json websocket

我正在使用websocket进行词汇测试。该程序首先返回一个单词,例如'bonjour'。用户填写翻译'hello'。我希望将单词以JSON对象的形式发送到javascript代码。在PHP脚本中,使用json_encode将数组发送到javascript文件。该数组看起来像这样:{"response":"bonjour"}

我正在尝试使用array['response']打印回复,但这会返回Unexpected token h in JSON at position 0。我也试过了array.response。我认为这与JSON对象是纯文本的事实有关。我尝试使用parseJSON解决这个问题,但它仍然返回Unexpected token h in JSON at position 0

非常感谢任何帮助。

<!doctype html>
<html>
<head>
    <meta charset='UTF-8' />
    <style>
        input, textarea {border:1px solid #CCC;margin:0px;padding:0px}

        #body {max-width:800px;margin:auto}
        #log {width:100%;height:400px} 
        #message {width:100%;line-height:20px}
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script src="fancywebsocket.js"></script>
    <script>
        var Server;

        function log( text ) {
            $log = $('#log');
            //Add text to log
            $log.append(($log.val()?"\n":'')+text);
            //Autoscroll
            $log[0].scrollTop = $log[0].scrollHeight - $log[0].clientHeight;
        }

        function emptylog(){
            $("#log").html("");
        }

        function send( text ) {
            Server.send( 'message', text );
        }

        $(document).ready(function() {
            log('Connecting...');
            Server = new FancyWebSocket('ws://websocket.com/ws2/');
            emptylog();

            $('#message').keypress(function(e) {
                if ( e.keyCode == 13 && this.value ) {
                    log( 'You: ' + this.value );
                    send( this.value );

                    $(this).val('');
                }
            });

            //Let the user know we're connected
            Server.bind('open', function() {
                log( 'Connected' );
            });

            //OH NOES! Disconnection occurred.
            Server.bind('close', function( data ) {
                log( "Disconnected." );
            });

            //Log any messages sent from server
            Server.bind('message', function( payload ) {
                var array = jQuery.parseJSON(payload);
                log( array['response'] );
            });

            Server.connect();
        });
    </script>
</head>

<body>
    <div id='body'>
        <textarea id='log' name='log' readonly='readonly'></textarea><br/>
        <input type='text' id='message' name='message' />
    </div>
</body>

</html>

0 个答案:

没有答案