2012-03-23 17 views
17

JavaScriptでコードを書いています。このコードでは、jsonファイルを読みたいと思います。このファイルはURLからロードされます。jQueryを使用せずにJavaScriptでJSONファイルを開くにはどうすればよいですか?

JavaScriptのオブジェクトにこのJSONファイルの内容を取得するにはどうすればよいですか?

これは、例えば../json/main.jsonにある私のJSONファイルです:

{"mainStore":[{vehicle:'1',description:'nothing to say'},{vehicle:'2',description:'nothing to say'},{vehicle:'3',description:'nothing to say'}]} 

と私はこのように私のtable.jsファイルでそれを使用したい:

for (var i in mainStore) 
{  
    document.write('<tr class="columnHeaders">'); 
    document.write('<td >'+ mainStore[i]['vehicle'] + '</td>'); 
    document.write('<td >'+ mainStore[i]['description'] + '</td>'); 
    document.write('</tr>'); 
} 
+0

:として

function loadJSON(path, success, error) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.status === 200) { if (success) success(JSON.parse(xhr.responseText)); } else { if (error) error(xhr); } } }; xhr.open("GET", path, true); xhr.send(); } 

はそれを呼び出しますjsonのコンテンツを返します。もしそうなら、なぜjQueryを使ってみたくないのか解説できますか?これには完全に適した$ .ajax関数があります。 –

+0

ヘイ・ミハエル、それは私がしたいことです。なぜ私はj​​Queryを使いたくないのですか?私が働いている人は、スクリプトのスピードを恐れているので、それを望んでいないからです。 –

+0

@TobyJustus:適切なプロファイリングは、jQueryがgetJSONに関してどんな遅れもないことを伝えます。彼がしていることは、ほとんど何の利益も得ずに、自分自身を難しくすることです。実際には、Stroustrupは、ネイティブコードがあなたのために作られたライブラリよりも遅くなることがあるという素晴らしい話をしました。 –

答えて

38

はjQueryのを必要としない例です:私は「JSONファイルを読み込む」ことにより、あなたはURLへのリクエストを行う意味することを理解

loadJSON('my-file.json', 
     function(data) { console.log(data); }, 
     function(xhr) { console.error(xhr); } 
); 
+0

私はあなたがメソッドの3番目のパラメータとして "エラー"を忘れたと思います。例のおかげで、私はそれを使用します。 –

+0

@DennisS、それを指摘してくれてありがとう。コードサンプルを修正します。 –

+0

最後の行に 'xhr.send()'が必要なのはなぜですか? – ayjay

3

JSONがで行うには何もを持っていませんjQuery。

あなたが今持っているコードで間違っは何もありません。


変数mainStoreを格納するには、そのjsonの変数です。

あなたは変数にそのJSONを保管する必要がありますjQueryのはあなたのために、これは非常に簡単になるため

var myJSON = {"mainStore":[{vehicle:'1',description:'nothing to say'},{vehicle:'2',description:'nothing to say'},{vehicle:'3',description:'nothing to say'}]}; 

var mainStore = myJSON.mainStore; 

//.. rest of your code. 
+2

しかし、どのように私はvar myJSONに外部ファイルを格納するのですか?私は本当のnewbeです:) –

+0

@TobyJustus - > http://falcon80.com/JSON/JSONandAJAX.html – Neal

+0

@Toby別のファイルを作成し、使用する他のコードの前に '

関連する問題