代码之家  ›  专栏  ›  技术社区  ›  fmsf

为什么这个JSON没有被正确解析?

  •  -1
  • fmsf  · 技术社区  · 15 年前

    我的问题是,JavaScript或jQueryAPI没有解析这个JSON。我包括下面的代码和JSON输出所在的URL。

    此JSON在JavaScript中被解析为nothing:

    //something like this:
    alert(data); // gives an object
    alert(data.horas[0].hora; // gives undefined
    

    JSON本身:

    {"horas": [{"hora": "13:20","filmes":[{ "tittle": "A Idade do Gelo 3 - Despertar dos Dinossauros VP3D ", "description": "", "image_url": "images/cartazes/img/a_idade_do_gelo_3_despertar_dos_dinossauros.jpg"}]},{"hora": "15:50","filmes":[{ "tittle": "A Idade do Gelo 3 - Despertar dos Dinossauros VP3D ", "description": "", "image_url": "images/cartazes/img/a_idade_do_gelo_3_despertar_dos_dinossauros.jpg"}]},{"hora": "18:00","filmes":[{ "tittle": "A Idade do Gelo 3 - Despertar dos Dinossauros VP3D ", "description": "", "image_url": "images/cartazes/img/a_idade_do_gelo_3_despertar_dos_dinossauros.jpg"}]},{"hora": "21:05","filmes":[{ "tittle": "A Idade do Gelo 3 - Despertar dos Dinossauros VP3D ", "description": "", "image_url": "images/cartazes/img/a_idade_do_gelo_3_despertar_dos_dinossauros.jpg"}]},{"hora": "13:40","filmes":[{ "tittle": "Igor ", "description": "", "image_url": "images/cartazes/img/igor.jpg"}]},{"hora": "16:10","filmes":[{ "tittle": "Igor ", "description": "", "image_url": "images/cartazes/img/igor.jpg"}]},{"hora": "21:30","filmes":[{ "tittle": "Bruno ", "description": "", "image_url": "images/cartazes/img/bruno.jpg"}]},{"hora": "13:00","filmes":[{ "tittle": "Harry Potter e o príncipe Misterioso ", "description": "", "image_url": "images/cartazes/img/harry_potter_e_o_principe_misterioso.jpg"}]},{"hora": "16:30","filmes":[{ "tittle": "Harry Potter e o príncipe Misterioso ", "description": "", "image_url": "images/cartazes/img/harry_potter_e_o_principe_misterioso.jpg"}]},{"hora": "20:30","filmes":[{ "tittle": "Harry Potter e o príncipe Misterioso ", "description": "", "image_url": "images/cartazes/img/harry_potter_e_o_principe_misterioso.jpg"}]},{"hora": "00:15","filmes":[{ "tittle": "O Barco do Rock ", "description": "", "image_url": "images/cartazes/img/o_barco_do_rock.jpg"}]},{"hora": "12:30","filmes":[{ "tittle": "O Barco do Rock ", "description": "", "image_url": "images/cartazes/img/o_barco_do_rock.jpg"}]},{"hora": "15:25","filmes":[{ "tittle": "O Barco do Rock ", "description": "", "image_url": "images/cartazes/img/o_barco_do_rock.jpg"}]},{"hora": "18:20","filmes":[{ "tittle": "O Barco do Rock ", "description": "", "image_url": "images/cartazes/img/o_barco_do_rock.jpg"}]},{"hora": "00:20","filmes":[{ "tittle": "Harry Potter e o príncipe Misterioso ", "description": "", "image_url": "images/cartazes/img/harry_potter_e_o_principe_misterioso.jpg"}]},{"hora": "13:30","filmes":[{ "tittle": "Harry Potter e o príncipe Misterioso ", "description": "", "image_url": "images/cartazes/img/harry_potter_e_o_principe_misterioso.jpg"}]},{"hora": "17:10","filmes":[{ "tittle": "Harry Potter e o príncipe Misterioso ", "description": "", "image_url": "images/cartazes/img/harry_potter_e_o_principe_misterioso.jpg"}]},{"hora": "13:10","filmes":[{ "tittle": "Cinco Minutos de Paz ", "description": "", "image_url": "images/cartazes/img/cinco_minutos_de_paz.jpg"}]},{"hora": "16:00","filmes":[{ "tittle": "Cinco Minutos de Paz ", "description": "", "image_url": "images/cartazes/img/cinco_minutos_de_paz.jpg"}]},{"hora": "18:30","filmes":[{ "tittle": "Cinco Minutos de Paz ", "description": "", "image_url": "images/cartazes/img/cinco_minutos_de_paz.jpg"}]},{"hora": "21:40","filmes":[{ "tittle": "Cinco Minutos de Paz ", "description": "", "image_url": "images/cartazes/img/cinco_minutos_de_paz.jpg"}]},{"hora": "00:00","filmes":[{ "tittle": "A Proposta ", "description": "", "image_url": "images/cartazes/img/a_proposta.jpg"}]},{"hora": "12:50","filmes":[{ "tittle": "A Proposta ", "description": "", "image_url": "images/cartazes/img/a_proposta.jpg"}]},{"hora": "15:40","filmes":[{ "tittle": "A Proposta ", "description": "", "image_url": "images/cartazes/img/a_proposta.jpg"}]},{"hora": "18:10","filmes":[{ "tittle": "A Proposta ", "description": "", "image_url": "images/cartazes/img/a_proposta.jpg"}]}]}
    

    您可以在以下网址查看:

    http://www.my-clock.net/vodafone/getCinema.php?cinemaid=W5

    当我通过 $.post $.get 在JSON中,我总是在回调中获取空数据。谁能给我解释一下这是怎么回事吗?


    注:

    这不是因为“同一原产地政策”)


    <html>
    <head>
        <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
        <script type="text/javascript">
                $.post("http://localhost/getCinema.php", { cinemaid: 'W5'},
                  function(data){
                    alert(data);
                    alert(data.horas[0]);
                }
                ,"json");
                alert("fim");
        </script>
    </head>
    <body>
    </body>
    </html>
    
    3 回复  |  直到 15 年前
        1
  •  6
  •   seth    15 年前

    这是因为你的弦上有断线。如果您查看JSON页面的源代码,您可以看到所有这些内容。如果删除它们,页面将正常工作。

    退房:

    此外,您还可以通过导航到帖子中的URL、查看源代码并将其复制粘贴到jslint中来验证JSON是否无效。

        2
  •  1
  •   Community CDub    7 年前

    this .

    [编辑]

    这是HTML

    <html><head>
    <body>
        <form method="post" action="http://www.my-clock.net/vodafone/getCinema.php">
         <input type="text" name="cinemaid" value="W5">
         <input type="submit">
        </form>
    </body>
    </html>
    
        3
  •  0
  •   wgpubs    15 年前

    您是否在php脚本中正确地编码了它?

    警报(数据)似乎返回一个对象,因为它是一个有效字符串。警报(data.horas[0]。hora为您提供未定义的消息,因为该对象未被解释为JSON(例如,一组hora对象,每个对象都具有hora属性)。

    在php中尝试以下操作:

    <?php echo json_encode(... your array of hora objects here ...); ?>