2

我正在尝试从 PHP 数组创建一个 JS 对象数组,但我正在努力寻找一种在每个对象之间插入逗号的方法。

这是我要输出的内容:

var things = [
    {
        a: "foo",
        b: "bar"
    },  // Comma on this line
    {
        a: "moo",
        b: "car"
    }   // No comma on this line
];

这是我到目前为止所拥有的:

var things = [
    <?php foreach ($things as $thing): ?>
    {
        a: "<?php echo $thing->getA(); ?>",
        b: "<?php echo $thing->getB(); ?>"
    }
    <?php endforeach; ?>
];

我想我可以诉诸一些丑陋的东西,比如if只运行一次的语句:

<?php
    $i = 1;
    if ($i == 1) {
        echo '{';
        $i++;
    } else {
        echo ',{';
    }
?>

有没有更清洁/更好的方法来做到这一点?

4

4 回答 4

5

就像是...

$JSONData = json_encode($YourObject);

还有解码...

$OriginalObject = json_decode($JSONData);
于 2012-07-25T11:38:07.983 回答
1

如果你有一个 PHP 数组并且想要在 JavaScript 中可用的东西,你可以使用json_encode()

于 2012-07-25T11:38:28.510 回答
1

你为什么不使用json_encode

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

上面的例子将输出: {"a":1,"b":2,"c":3,"d":4,"e":5}

于 2012-07-25T11:39:09.337 回答
0

将所需的结构创建为 PHP 数组,然后使用 json_encode (http://php.net/manual/en/function.json-encode.php)。

$plainThing = array();

foreach ($things as $thing) {
    $plainThing[] = array('a' => $thing.getA(), 'b' => $thing.getB());
}

echo json_encode($plainThing);
于 2012-07-25T11:41:43.970 回答