私はここにJSON文書を持っています。私はJSlintでそれを確認しました。なぜこのJSONファイルが奇妙に読まれているのですか
JSONは、この形式は次のとおりです。
[{
"date": "2017-02-10",
" action": "Do a thing",
"state": "closed",
"url": "https:someurl.com"
},
....
私はJSONを読み出して出力するために存在するいくつかのHTML hereを、持っています。
HTMLは次のようになります。
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
</head>
<body>
<script>
deadlines = []
start();
function start() {
var req = new XMLHttpRequest();
req.open("GET", "http://joereddington.com/deadlines.json");
req.overrideMimeType("application/json");
req.send(null);
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
var obj = JSON.parse(req.responseText);
deadlines = obj
for (deadline in deadlines) {
var output = '';
for (var property in deadline) {
console.log(property)
output += property + ': ' + deadline[property] + '; ';
}
console.log(output);
console.log(deadline.date)
console.log(deadline.action)
}
}
};
}
</script>
</body>
をしかし、私がしようとすると、各オブジェクトのプロパティを一覧表示するとき、私は非常に奇妙な結果を得る:
ではなく、名前をと私が探している価値誰かが私が間違っていることを教えてもらえますか?
'deadlines'は**配列**です。だから、 'for'ではなく' for'によって反復されなければなりません。 – hindmost
JSON上にクロスオリジンヘッダがないので、正しく診断できません。配列をループするには 'for(x in y)'の代わりに 'deadlines.forEach(function(deadline){...})'を使います。 –
@Liam Grayリクエストは同じドメインなので、CORSはここでは適用されません。 – hindmost