jQuery JSON没有检索标题

时间:2011-10-15 08:09:41

标签: jquery json

好的,我正在尝试从文件中获取标题: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控制台也没有错误。

4 个答案:

答案 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){