0

我有

 $age = implode(',', $wage);   // which is object return:  [1,4],[7,11],[15,11]
  $ww = json_encode($age);

然后我在这里检索它

    var age = JSON.parse(<?php echo json_encode($ww); ?>); 

所以如果我做

   alert(typeof(<?php echo $age; ?>))   // object
   alert(typeof(age))                   //string

在我的情况下 JSON.parse 重新调整为字符串。

我怎样才能让 json 作为对象返回?

编辑:

 var age = JSON.parse(<?php echo $ww; ?>); // didnt work , its something syntax error
4

3 回答 3

2

implode返回一个字符串,因此将其json_encode编码为这样是很自然的。它不能识别已经作为字符串传递的类似 JSON 的数据。

如果要获取对象,则必须将关联数组传递给json_encode

$foo = array(
    1 => 4,
    7 => 11,
    15 => 11
);

echo json_encode($foo); // {1:4,7:11,15:11}

关于爆炸前的样子的信息很少$wage,很难准确地说出你想要得到什么。该结构 ( [1,4],[7,11],[15,11]) 是如何成为对象的?每个元组的第一个元素是键吗?这就是我在示例中所假设的,但它可能会关闭。

于 2012-12-08T21:56:24.433 回答
1

一种。您会收到语法错误,因为您需要将字符串括在引号内,如下所示:

var age = JSON.parse("<?php echo $ww; ?>");

湾。此外,您不需要 JSON.parse. 您可以在服务器端已经 json_encoded 后简单地回显 php var:

var age = <?php echo $ww; ?>;

JSON.parse 用于将JavaScript字符串转换为对象。对于 PHP 字符串,一旦构建为 JSON,在正确的位置回显它就相当于自己编码。

于 2012-12-08T22:16:03.913 回答
1
var age = [<?php echo $age; ?>];
于 2012-12-08T23:02:35.573 回答