1

我从未使用过 JSON,我现在真的需要这样做,我已经尝试了 jQuery 页面中的大量示例,但它似乎对我不起作用。

我有生成字符串的 *.php 文件,因为我知道这是我将 JSON 从 PHP 传递到 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/

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

4

7 回答 7

2

JSON无效,不要编写自己的序列化程序,已经存在完美的序列化程序。

于 2011-07-08T15:49:33.630 回答
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. 数组必须放在括号中('[' & ']')。
  2. 您的对象属性必须用双引号括起来。

此外,请参阅JSON.org的底部,了解已经为您将在 Web 上使用的语言编写的包,因此您不必编写自己的包。

于 2011-07-08T15:52:48.203 回答
1

不要构建自己的 json。用来json_encode($some_php_data_structure)为你做这一切。否则,您必须自己进行所有转义/括号,并且在某些时候您会错过一些东西并最终得到糟糕的 javascript,这将杀死您所有的客户端脚本。

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

于 2011-07-08T15:49:07.297 回答
1

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

于 2011-07-08T15:49:14.643 回答
1

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

于 2011-07-08T15:50:44.113 回答
0

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

echo json_encode($your_array);

然后,在解析它之前,您无需担心 JSON 语法。

于 2011-07-08T15:50:52.993 回答
0

针对上述提交者的评论:

好的,这部分似乎已经完成,但是我如何将这些数据接收到 JS 中的数组中?使用 jQuery ofc..

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

于 2011-07-08T16:14:04.737 回答