ローカルファイルへの正しいパスを取得しようとして立ち往生しています。次のディレクトリがあります。
Resources ->
data ->
file.json
js ->
folder ->
script.js
html ->
folder ->
file1.html
私はscript.js
からfile1.html
をjsコードで実行しています:
var answers = JSON.parse('../../data/file.json');
alert(answers);
しかし、それは機能せず、アラートでさえ開始されません。なにが問題ですか?
また、私はこれを試しました:
function readJSON(file) {
var request = new XMLHttpRequest();
request.open('GET', file, false);
request.send(null);
if (request.status == 200)
return request.responseText;
};
var temp = readJSON('../../data/file.json');
alert(temp);
この場合、アラートは未定義です。
ディレクトリにあるのでdata/
、あなたがする必要があります:
ファイルパスは'../../data/file.json'
$.getJSON('../../data/file.json', function(data) {
alert(data);
});
ピュアJS:
var request = new XMLHttpRequest();
request.open("GET", "../../data/file.json", false);
request.send(null)
var my_JSON_object = JSON.parse(request.responseText);
alert (my_JSON_object.result[0]);
このソリューションでは、非同期呼び出しを使用します。同期ソリューションよりもうまく機能する可能性があります。
var request = new XMLHttpRequest();
request.open("GET", "../../data/file.json", false);
request.send(null);
request.onreadystatechange = function() {
if ( request.readyState === 4 && request.status === 200 ) {
var my_JSON_object = JSON.parse(request.responseText);
console.log(my_JSON_object);
}
}
このようなものを使用してください
$.getJSON("../../data/file.json", function(json) {
console.log(json); // this will show the info in firebug console
alert(json);
});
var request = new XMLHttpRequest();
request.open("GET","<path_to_file>", false);
request.send(null);
var jsonData = JSON.parse(request.responseText);
このコードはうまくいきました。
作業コードの私の場合は次のとおりです。
var request = new XMLHttpRequest();
request.open("GET", "<path_to_file>", false);
request.overrideMimeType("application/json");
request.send(null);
var jsonData = JSON.parse(request.responseText);
console.log(jsonData);
Resources
がルートパスの場合、file.json
にアクセスする最良の方法は、/data/file.json
を使用することです。