2017-03-01 5 views
1

XMLHttpRequestを使用して取得したJSONファイル内のデータを使用したいと思います。私はすでにファイルを受け取ったことを確認しました。XMLHttpRequestからのJSONファイルの解析

var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     document.getElementById("demo").innerHTML = this.responseText; 
    } 
}; 
var obj = xhttp.open("GET", "../data/data.json", true); 
xhttp.send(); 
var obj1 = JSON.parse(obj); 
a0 = obj1.a0; 

これはJSONファイルです。

{"a0":2, "a1": -2.356, "a2": 4.712} 

私がここでやっている間違いを見つけることができません。手伝ってくれますか?

+0

ありinnerHTMLプロパティ= this.responseText 'の間にかなり明らかな違いがある;'と 'OBJ = xhttp.open( "GET"、 "../data/data.json"、真) ; ' – Quentin

答えて

1
var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     document.getElementById("demo").innerHTML = this.responseText; 
     var obj=this.responseText; 
     var obj1 = JSON.parse(obj); 
     a0 = obj1.a0; 
    } 
}; 
xhttp.open("GET", "../data/data.json", true); 
xhttp.send(); 

応答テキストをxhttp応答内に入れる必要があります。

0

onreadystatechangeはコールバックです。これは、要求が終了したときに非同期に呼び出されることを意味します。あなたのコードの一部が間違っています。ここに訂正:

var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     document.getElementById("demo").innerHTML = this.responseText; 
     var obj1 = JSON.parse(this.responseText); 
     var a0 = obj1.a0; 
    } 
}; 
xhttp.open("GET", "../data/data.json", true); 
xhttp.send();