简单的JSON问题

时间:2011-07-08 15:46:04

标签: php javascript jquery json galleria

我从未使用过JSON,我现在真的需要这样做,我已经尝试了一些来自jQuery页面的例子,但它似乎对我不起作用。

我有生成字符串的* .php文件,据我所知这是我如何从PHP传递JSON到javascript。我想要生成的字符串非常简单:

foreach ($imageList as $img)
{
    echo "{ thumb: 'media/img/t/$img', image: 'media/img/m/$img'},";
}

所以结果会像(格式化)

{
thumb: 'media/img/t/123.jpg',
image: 'media/img/m/123.jpg'
},
{
thumb: 'media/img/t/1234.jpg',
image: 'media/img/m/1234.jpg'
},

依旧......

不知何故,我认为这不是正确的做事方式,当然不好意思,但正如我所说,我从未使用过JSON格式,我几乎不知道它代表什么。

我希望这些数据位于javascript数组中,所以我可以像我这样在我的库中使用它(3.使用JSON)http://galleria.aino.se/docs/1.2/references/data/

有人可以帮我这个吗?我知道这可能是一个非常容易的问题,但对于我来说,作为一个完整的菜鸟,我很难理解。当我知道如何解决这个问题时,我可能会理解它是如何工作的以及如何使用它,但现在我真的不知道。

8 个答案:

答案 0 :(得分:2)

JSON是invalid,不要编写自己的序列化程序perfectly good ones exist already

答案 1 :(得分:2)

我建议您使用json_encode(),因为您在创建的json对象字符串中有几个问题。

<?php

$json_image_list = array();
foreach ($imageList as $img){
    $json_image_list[] = array(
        'thumb' => "media/img/t/$img",
        'image' => "media/img/m/$img",
    );
}

echo json_encode($json_image_list);

?>

所以你知道,json中有一些问题:

  1. 数组必须放在括号中('['&amp;']')。
  2. 您的对象属性必须用双引号括起来。
  3. 另外,请参阅JSON.org的底部,了解已经针对您将在网络上使用的语言编写的软件包,这样您就不必自己编写。

答案 2 :(得分:1)

不要建立自己的json。使用json_encode($some_php_data_structure)为您完成所有操作。否则你必须自己进行所有转义/包围,并且在某些时候你会错过一些东西并最终得到错误的javascript,这会杀死你所有的客户端脚本。

您所要做的就是在PHP中构建数据结构,将其传递给json_encode(),然后就完成了。

答案 3 :(得分:1)

推荐的方法是使用json_encode。它为您完成所有工作,并将PHP变量转换为JSON字符串。

答案 4 :(得分:1)

生成的字符串无效JSON。所有这些对象都应该在一个数组中,并且应该引用属性的名称。你为什么不用json_encode

答案 5 :(得分:0)

您可以在PHP中填充普通数组,然后执行此操作以回显JSON:

echo json_encode($your_array);

然后在解析之前不需要担心JSON语法。

答案 6 :(得分:0)

回应上述提交者的评论:

  哎呀,这部分似乎已经完成了,但是如何将这些数据接收到JS里面的数组?使用jQuery ofc ..

您可以使用jQuery的getJSON函数将JSON接收到JavaScript数组中。

答案 7 :(得分:0)

使用Paul DelRe的php解决方案,您可以使用此jquery代码访问数据图像,当然还可以选择(触发)“点击,更改等”

$.ajax({
  type: "POST",
      url: "yourfile.php",
      dataType:"json",
      data: Data,
      success: function(result)
      {        
          $("#image").html(result.image); 
      }
    });