javascript
  • json
  • 2016-04-01 51 views 2 likes 
    2

    修订解析:JavaScript的JSON从URL

    我试图解析从URL的响应,但不知道如果我做正确。

    的URL返回以下JSON:

    {"make":"truck","date":"23 July 2009","colour":"pink"}; 
    

    如果我更换变种newtext = xhttp.responseText;与

    var newtext ='{“make”:“truck”,“date”:“2009年7月23日”,“颜色”:“粉红色”}';

    它的作品,但只要我回到xhttp.responseText它只是显示一个空白页。

    我正在使用的代码是:

    <!DOCTYPE html> 
    <html> 
    
    <body> 
        <p id="demo"></p> 
        <script> 
        xhttp.open("GET", "https://url.com", false); 
        xhttp.send(); 
    
        var newtext = xhttp.responseText; 
    
        var obj = JSON.parse(newtext); 
    
        document.getElementById("demo").innerHTML = 
        obj.make + "<br>" + 
        obj.colour + "<br>" + 
        obj.date; 
        </script> 
    </body> 
    
    </html> 
    
    +1

    当你运行它,会发生什么被复制? – jonhopkins

    +0

    你的回应已经是JSON,为什么你再次解析它?只是在不解析的情况下使用它。 –

    +0

    @SindhooOad因为JSON是从'xhttp.responseText'中检索的,我敢肯定它是一个恰好处于JSON格式的字符串,并且需要解析 – jonhopkins

    回答

    0

    您还没有定义您的变量xhttp,但你试图调用它的功能。这导致Uncaught ReferenceError错误并导致其余代码不能运行。如果您想要创建一个XMLHttpRequest对象,请将其放在脚本的顶部。

    var xhttp; 
    if (window.XMLHttpRequest) { 
        xhttp = new XMLHttpRequest(); 
    } else { 
        // code for IE6, IE5 
        xhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    
    // the object actually exists here now so the functions can be called on it 
    xhttp.open("GET", "https://url.com", false); 
    xhttp.send(); 
    ... 
    

    然后你就可以继续你的代码的其余部分,放心,你的xhttp对象已被初始化。

    我一般不建议使用W3Schools的,但上面的代码http://www.w3schools.com/ajax/ajax_xmlhttprequest_create.asp

    +0

    好的,谢谢,我会给它一个去 – NewToCode

    相关问题