好的,我正在尝试从文件中获取标题:main.txt,但它是同一文件夹中的main.txt(如您所见,它是JSON)。
我正在使用它:
<!DOCTYPE html>
<html>
<head>
<style>img{ height: 100px; float: left; }</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div id="images">
Hello<br />
</div>
<script>
$.getJSON("main.txt",
function(data) {
$.each(data.items, function(i,items){
$("#images").append(items.id);
if (i == 3)
return false;
});
});
</script>
</body>
</html>
但是......没有任何回报,谷歌Chrome控制台也没有错误。
答案 0 :(得分:2)
答案很简单:您的文件无效JSON 。因此jQuery无法解析它,并且不会执行成功回调。
在JSON中,键和字符串必须是双引号。即。
{
'title': 'Home',
...
必须是
{
"title": "Home",
...
这只是一个例子;你必须纠正整个文件。
使用JSONLint验证您的JSON。您当前的文字给出了:
Parse error on line 1:
{ 'title': 'Home',
-----^
Expecting 'STRING', '}'
最后;
也不正确。
答案 1 :(得分:1)
查看http://mystikrpg.com/main.txt,项目元素包含'id','x'和'y'属性。没有任何“媒体”属性。这就是你的代码不起作用的原因。
答案 2 :(得分:1)
假设您没有执行跨域请求,则会出现以下问题。 JSON无效,如@Felix已经提到的那样。
您可以转到jsonlint验证它。
这对我来说很有帮助:
$(function(){
$.getJSON("SOQ.txt",
{
tags: "title",
tagmode: "any",
format: "json"
},
function(data) {
console.log(data);
$.each(data.items, function(i,item){
console.log(item.id);
});
});
});
这是有效的JSON:
{
"title": "Home",
"ids": [
{
"currentID": 1,
"leftMap": 0,
"rightMap": 0,
"upMap": 0,
"downMap": 0
}
],
"signs": [
{
"x": 8,
"y": 13,
"map": 1,
"text": "Welcometothegame.<br/><br/>Outsideworldislocked.Makeyourownworld."
}
],
"entrances": [
{
"x": 12,
"y": 4,
"tile_after": 167,
"item_req": 0
},
{
"x": 3,
"y": 5,
"tile_after": 166,
"item_req": 0
},
{
"x": 7,
"y": 7,
"tile_after": 166,
"item_req": 5
}
],
"items": [
{
"id": "6",
"x": 10,
"y": 2
},
{
"id": "1",
"x": 5,
"y": 3
}
],
"monsters": [
{
"id": "1",
"x": 13,
"y": 9
}
],
"map": [
[
1,
1,
1,
1,
1,
1,
1,
190,
115,
1,
1,
1,
1,
1,
1,
2
],
[
190,
190,
190,
190,
190,
190,
190,
190,
13,
148,
148,
148,
148,
148,
121,
2
],
[
1,
520,
127,
127,
127,
127,
127,
13,
13,
148,
167,
167,
167,
148,
343,
1
],
[
1,
520,
127,
166,
166,
166,
127,
13,
13,
148,
167,
167,
167,
148,
343,
1
],
[
1,
520,
127,
166,
166,
166,
127,
13,
13,
148,
148,
148,
183,
148,
343,
1
],
[
1,
520,
364,
174,
127,
361,
127,
13,
13,
13,
13,
13,
13,
13,
13,
1
],
[
115,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
13,
115
],
[
1,
514,
13,
13,
394,
343,
145,
220,
145,
145,
145,
13,
13,
13,
13,
1
],
[
1,
514,
13,
13,
343,
118,
145,
166,
166,
166,
145,
13,
13,
13,
13,
1
],
[
1,
514,
514,
13,
118,
118,
145,
166,
166,
522,
145,
13,
13,
13,
13,
1
],
[
1,
1,
1,
115,
1,
1,
145,
145,
145,
145,
145,
1,
1,
1,
1,
1
]
]
}
答案 3 :(得分:0)
是在您的域名还是其他域名?您无法使用其他域名...请使用JSONP
在处理之前使用jQuery.parseJSON(data)
。
$.each(jQuery.parseJSON(data).items, function(i,item){