javascript
  • json
  • 2016-04-01 57 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

    相關問題